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 に答える