一尘不染

mysql计数组

mysql

我有这张桌子:

Movies (ID, Genre)

电影可以具有多种流派,因此ID并非特定于流派,而是多对多关系。我想要查询以找到正好具有4种流派的电影总数。我目前的查询是

  SELECT COUNT(*) 
    FROM Movies 
GROUP BY ID 
  HAVING COUNT(Genre) = 4

但是,这会返回4而不是总和的列表。如何获得总和而不是清单count(*)


阅读 329

收藏
2020-05-17

共1个答案

一尘不染

一种方法是使用嵌套查询:

SELECT count(*)
FROM (
   SELECT COUNT(Genre) AS count
   FROM movies
   GROUP BY ID
   HAVING (count = 4)
) AS x

内部查询将获取所有具有完全4种类型的电影,然后外部查询将计算内部查询返回的行数。

2020-05-17