mysql - 计算表中的重复名称

标签 mysql sql database join

我有两个表: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

这是我的输出

Output

我面临的问题是:我想从 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/

相关文章:

mysql - 如何在yii中使用in条件

php - CREATE IDENTIFIER ----使用php将2个表单数据插入到一张表中

php - 如何对数据库查询中的所有对话(消息)进行分组

python - 无法将details.html连接到django中的index.html

sql - 复杂SQL设计书

database - 何时以及如何使用 Laravel Factory 和 Seeding

mysql - Doctrine2和where sql语句

php - sql查询只更新一个字段

sql - SQL选择顶部1

php - 根据其他两个表的比较插入到表中