我有一个名为发布的表,它是“音乐”数据库的一部分。该表由两列组成;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_idper的数量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