我有两个表:Customer 和 ParkingTransaction。我想显示最常使用地段的前 10 名客户。 ParkingTrasaction 表中的“CustomerKey”是将 ParkingTransaction 连接到 Customer 的外键。我编写了以下代码来计算 ParkingTransaction 表中最常用的 CustomerKey,它工作正常...
SELECT TOP 10 CustomerKey
, count(*) as 'Usage'
FROM ParkingTransaction
GROUP BY CustomerKey
HAVING (count(CustomerKey) > 0)
ORDER BY 'Usage' DESC
这是我的输出
我面临的问题是:我想从 Customer 表中提取 FirstName 和 LastName 字段,而不是仅按 CustomerKey 进行排序。我搞砸了 JOINS,但还没有想出解决方案。
谢谢!
最佳答案
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/