我有两张桌子:顾客和停车场。我想展示十大最常使用该产品的客户。parkingtrasaction表中的customerkey是连接parkingtransaction和customer的fk。我已经编写了以下代码,其中计算了parkingtransaction表中使用最多的customerkey,它工作得很好……

SELECT TOP 10 CustomerKey
, count(*) as 'Usage'
  FROM ParkingTransaction
  GROUP BY CustomerKey
  HAVING (count(CustomerKey) > 0)
  ORDER BY 'Usage' DESC

这是我的输出
Output
我面临的问题是:我想从customer表中提取firstname和lastname字段,而不是仅仅通过customerkey进行排序。我把连接搞砸了,但还没有想出解决办法。
谢谢!

最佳答案

mysql使用LIMIT而不是TOP

SELECT  a.FirstName, a.LastName,
        COUNT(*) as `Usage`
FROM    Customer a
        INNER JOIN ParkingTransaction b
            ON a.CustomerKey = b.CustomerKey
GROUP BY a.FirstName, a.LastName
ORDER BY `Usage` DESC
LIMIT 10

由于查询使用的是INNER JOIN,因此在这种情况下,HAVING COUNT(*) > 0是不必要的。

关于mysql - 计算表中的重复名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14390357/

10-11 05:49