我正在尝试运行查询,该查询计算每个用户的订单数量。不幸的是,系统最初设置不好,并且有许多重复的客户记录(使用相同的电子邮件地址)。
我目前有以下简单查询:
SELECT
u.id,
u.name
u.email,
COUNT(o.id) AS num_orders
FROM users u
INNER JOIN orders o
ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
我可以做些什么来合并重复用户的计数吗?
任何建议表示赞赏。
由于
答案 0 :(得分:1)
SELECT
u.email,
COUNT(o.id) AS num_orders
FROM users u
INNER JOIN orders o
ON o.user_id = u.id
GROUP BY u.email
ORDER BY u.email
顺便提一下,虽然mysql允许你执行GROUP BY u.id
并省略查询中的其他非聚合字段,但它不是好的,也不是标准的SQL,应该避免使用。