mysql通过拥有计数组

标签 mysql sql group-by aggregate-functions

我有这张 table :

Movies (ID, Genre)

一部电影可以有多种类型,因此 ID 不是特定于类型的,它是多对多关系。我想要一个查询来查找恰好有 4 种类型的电影总数。我当前的查询是

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

但是,这会返回一个 4 的列表而不是总和。如何获取总和而不是 count(*) 的列表?

最佳答案

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

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

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

关于mysql通过拥有计数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7857538/

相关文章:

hadoop - Apache PIG - 按 ID 计数(*)分组并创建排名

sql - 在同一列上迭代时计算持续时间

python - 合并 DataFrame 中的重复列

java - 尝试将 JBoss 快速入门教程迁移到 mysql

php - 如何将我的表复制到转储表并删除主表中的值

php - 是否可以在 php 中跨 session 保存 mysql 对象?

php - 在 PDO 中使用 mysql insert 和 implode

sql - 获取不同数据库连接的上下文详细信息的任何方法

sql - “where-in”子句中的强制条件匹配

View 内的 MySql 子查询