MySQL COUNT并合并重复记录

时间:2012-10-11 08:31:53

标签: mysql sql count

我正在尝试运行查询,该查询计算每个用户的订单数量。不幸的是,系统最初设置不好,并且有许多重复的客户记录(使用相同的电子邮件地址)。

我目前有以下简单查询:

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

我可以做些什么来合并重复用户的计数吗?

任何建议表示赞赏。

由于

1 个答案:

答案 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,应该避免使用。