0

我有一个名为发布的表,它是“音乐”数据库的一部分。该表由两列组成;cd_id,band_id

我想列出 cd_id 和每个 cd 涉及的波段数,其中两个或更多band_id与一个cd_id值相关联。

你能帮我说这个吗?先感谢您。

4

2 回答 2

1

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.

于 2012-04-15T19:22:59.813 回答
1

假设版本没有为 CD_ID 列出两次相同的乐队

select CD_ID, count(*) 
from releases 
GROUP BY CD_ID
HAVING count(*) > 1
于 2012-04-15T19:23:18.393 回答