2012-10-11 114 views
0

我試圖運行一個查詢,它計算每個用戶的訂單數量。不幸的是,系統最初設置不好,並且有許多重複的客戶記錄(使用相同的電子郵件地址)。MySQL 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
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,應該避免。