我有一个名为发布的表,它是“音乐”数据库的一部分。该表由两列组成;cd_id
,band_id
我想列出 cd_id 和每个 cd 涉及的波段数,其中两个或更多band_id
与一个cd_id
值相关联。
你能帮我说这个吗?先感谢您。
COUNT()
这是一个带有HAVING
子句的聚合:
SELECT
cd_id,
count(*) AS numbands
FROM releases
GROUP BY cd_id
HAVING numbands >= 2
COUNT(*)
加上GROUP BY cd_id
返回band_id
per的数量cd_id
,并且为了将这些限制为 2+ 的版本band_id
,一个HAVING
子句指定numbands
(赋予计数值的别名)>= 2
。
请注意,这假设每个band_id
仅列出一次cd_id
。如果不是这种情况,要获得每张 cd 的独特乐队,请使用
COUNT(DISTINCT band_id) AS numbands
而不是COUNT(*) AS numbands
.
假设版本没有为 CD_ID 列出两次相同的乐队
select CD_ID, count(*)
from releases
GROUP BY CD_ID
HAVING count(*) > 1