2016-05-18 7 views
1

私はテーブルを持っているとしましょう。別のカウントでグループを選択する(私)SQL

SELECT user_id, COUNT(color) 
FROM cars 
WHERE color = 'red' 
GROUP BY user_id 

私示しています:

1 | 2 
2 | 1 
3 | 1 

しかし、私を

id | user_id | color 
1 |  1 | red 
2 |  1 | red 
3 |  2 | blue 
4 |  2 | red 
5 |  3 | red 

は今、私は、各クライアントが、私はこのSQLをやったどのくらいの赤い車を知りたいです本当に欲しいのは、それぞれのカウントのカウントです。次のようなものがあります:

Users with 1 red car : 2 
Users with 2 red car : 1 
... 

したがって、すでにcount()がグループ化されているselectを数える方法はありますか?

ありがとうございます!

答えて

4

集計の集計を使用します。

SELECT redCount, COUNT(*) 
FROM (SELECT user_id, COUNT(color) as redCount 
     FROM cars 
     WHERE color = 'red' 
     GROUP BY user_id 
    ) uc 
GROUP BY redCount; 
+0

うわー、それが可能だった知らなかった、私は実際にそのような何かを試してみましたが、私はSELECTテーブルにエイリアスを追加しませんでしたので、私はエラーを得ました。それは働いてくれてありがとう! – Carlos2W

関連する問題