MySQL:MAX(COUNT(*)) -- 错误 1111

标签 mysql count max

我是 MySQL 新手;我正在使用 SAS,我的大脑被 SAS 风格所扭曲。 因此,即使我认为我看到有人问了与我类似的问题,我仍然无法理解他们收到的答案。对此我深表歉意。

我有 2 个表:

film_category 包含列:

category_id,film_id,

,film_actor包含列

actor_id, film_id.

我通过 film_id 加入了他们

。问题是: 每个电影类别中最受欢迎的 Actor 有哪些? 有16个类别、200名 Actor 、1000部电影。

SELECT film_actor.actor_id,MAX(COUNT(actor_id))
FROM film_actor JOIN film_category 
ON film_actor.film_id = film_category.film_id
GROUP BY film_category;

果然,我一添加 MAX 就收到错误 1111... 如果我的问题不清楚,请告诉我。 谢谢你! -维拉

最佳答案

这是您的查询:

SELECT fa.actor_id, MAX(COUNT(fa.actor_id))
FROM film_actor fa JOIN
     film_category fc
     ON fa.film_id = fc.film_id
GROUP BY fc.film_category;

这是无效的,因为您不能嵌套聚合函数。

要做你想做的事,使用子查询和巧妙的聚合:

select film_category, max(numfilms) as maxnumfilms,
       substring_index(group_concat(actor_id order by numfilms desc), ',', 1) as actor_id
from (select fc.film_category, fa.actor_id, count(*) as numfilms
      from film_actor fa join
           film_category fc
           on fa.film_id = fc.film_id
      group by fc.film_category, fa.actor_id
     ) ac
group by film_category;

关于MySQL:MAX(COUNT(*)) -- 错误 1111,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26580550/

相关文章:

c# - 从 EF for PostGresql 生成的查询中的非最佳计数

mysql - 在不分组的情况下获得最大值

php - 创新数据库 : Create a many to many relationship between mysql tables

java - 我应该只将 Lucene 用于搜索吗?

java - 检索数据库 MySQL 的 'Time'

MySQL Group By 查找唯一组合

mysql - 从 MYSQL 命令提示符备份数据库

sql - 满足条件的 COUNT 行(在具有特定条件的行处重置)

c# - LINQ GROUP BY 和 MAX()

MYSQL 在使用 GROUP BY 时显示不正确的行