我有一个名为releases的表,它是'音乐'数据库的一部分。该表由两列组成; cd_id
,band_id
MySQL - 与请求值相关联的多个值
我想列出每个cd所涉及的cd_id和波段数,其中两个或多个band_id
与一个cd_id
值关联。
你能帮我解释一下吗?先谢谢你。
我有一个名为releases的表,它是'音乐'数据库的一部分。该表由两列组成; cd_id
,band_id
MySQL - 与请求值相关联的多个值
我想列出每个cd所涉及的cd_id和波段数,其中两个或多个band_id
与一个cd_id
值关联。
你能帮我解释一下吗?先谢谢你。
这是一个聚集COUNT()
与HAVING
子句:
SELECT
cd_id,
count(*) AS numbands
FROM releases
GROUP BY cd_id
HAVING numbands >= 2
加上GROUP BY cd_id
的COUNT(*)
返回band_id
每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
列出相同的频段两次