'music'データベースの一部であるreleasesというテーブルがあります。テーブルは2つの列で構成されています。cd_id
、band_id
band_id
2つ以上が1つの値に関連付けられている、cd_idと各cdに関連するバンドの数をリストしたいと思いcd_id
ます。
これを表現するのを手伝ってくれませんか。前もって感謝します。
これは句COUNT()
を含む集計です。HAVING
SELECT
cd_id,
count(*) AS numbands
FROM releases
GROUP BY cd_id
HAVING numbands >= 2
とCOUNT(*)
組み合わせてperGROUP BY cd_id
の数を返し、これらを 2+ のリリースに限定するために、句を指定します(count 値に指定されたエイリアス) 。band_id
cd_id
band_id
HAVING
numbands
>= 2
これは、それぞれband_id
が ごとに 1 回だけリストされていることを前提としていcd_id
ます。そうでない場合、CD ごとに一意のバンドを取得するには、次を使用します。
COUNT(DISTINCT band_id) AS numbands
の代わりにCOUNT(*) AS numbands
。
リリースが CD_ID に対して同じバンドを 2 回リストしていないと仮定します。
select CD_ID, count(*)
from releases
GROUP BY CD_ID
HAVING count(*) > 1