0

フィールドのあるテーブルがあります。

id | color | other fields....

1    red
2    blue
3    green
4    green
5    red
6    blue 

色は列挙型(赤、青、緑)です。

私が欲しいのは、色でソートされた結果のリストであり、赤/青/緑の色の要素の数も知りたいです。

したがって、上記の表から、次のような情報が必要です。

1赤5赤2青6青3緑4緑

カウントをRED=2、BLUE = 2、GREEN=2にします。

GROUP BYカラーを使用すると、3行しか表示されません。

もちろん、外部の別のループでカウントすることも、2つの異なるクエリを使用することもできます。しかし、単一のクエリでこれを最適に行う方法があれば幸いです。

4

1 に答える 1

1
SELECT  c.*, ColorCounts.ColorCount
FROM    colors AS c
INNER JOIN  (
            SELECT color, COUNT(*) AS ColorCount
            FROM colors
            GROUP BY color
            ) AS ColorCounts
        ON  ColorCounts.color = c.color
ORDER BY c.color, c.id
于 2012-08-26T06:30:06.147 に答える