mysql - #1111 - 组功能使用无效

标签 mysql

SELECT  departemen_id, departemen_name, COUNT(*)
FROM    departement d
JOIN    employees e
ON      departemen_id = departement_id
GROUP BY departemen_id, departemen_name
HAVING  COUNT(*) = (
            SELECT  MAX(COUNT(*))
            FROM    employees
            GROUP BY departement_id
        );

最佳答案

问题是 MAX(COUNT(*)) 对 dbms 没有任何意义。要遵循该路径,您必须使用另一级别的内部查询。

HAVING  COUNT(*) = (
            SELECT  MAX(CNT) FROM (
                SELECT  departement_id, COUNT(*) as CNT
                FROM    employees
                GROUP BY departement_id
            )
        );

不过,您可以利用 MySQL 的行数限制功能,并且您的查询将更加简单且性能更好

SELECT  d.departement_id, d.departement_name, COUNT(*)
FROM    departement d
JOIN    employees e
ON      d.departement_id = e.departement_id
GROUP BY d.departement_id, d.departement_name
ORDER BY COUNT(*) DESC
LIMIT 1;

关于mysql - #1111 - 组功能使用无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43546192/

相关文章:

php - 表间自增

从网络浏览器调用时出现 php 奇怪问题

php - Stripslashes() 在电子邮件中不起作用

php - 如何使用 INNER JOIN 从特定用户选择数据

mysql - 如何从 Heroku 访问远程 MySQL 数据库?

php - mySql 将两个 SELECT 查询与 JOIN 结合起来

mysql - 如何从硬盘导出MySQL数据库(数据文件夹)?

java - 在jdbc连接java中设置mysql用户主机

php - html选项数据显示外出

php - 将维基百科转储导入 MySql