我有这张桌子:
Movies (ID, Genre)
电影可以具有多种流派,因此ID并非特定于流派,而是多对多关系。我想要查询以找到正好具有4种流派的电影总数。我目前的查询是
SELECT COUNT(*) FROM Movies GROUP BY ID HAVING COUNT(Genre) = 4
但是,这会返回4而不是总和的列表。如何获得总和而不是清单count(*)?
count(*)
一种方法是使用嵌套查询:
SELECT count(*) FROM ( SELECT COUNT(Genre) AS count FROM movies GROUP BY ID HAVING (count = 4) ) AS x
内部查询将获取所有具有完全4种类型的电影,然后外部查询将计算内部查询返回的行数。