0

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

我目前有以下简单查询:

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

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

任何建议表示赞赏。

谢谢

4

1 回答 1

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,应该避免。

于 2012-10-11T08:33:28.487 回答