繁体   English   中英

不是单个组的组函数Oracle SQL

[英]Not a single-group group function Oracle SQL

我有下表: 在此处输入图片说明

我必须找到员工人数最多的部门的名称和国家/地区。

SELECT d.department_name, c.country_name FROM employees e, departments d, locations l, countries c
WHERE d.location_id = l.location_id AND l.country_id = c.country_id
HAVING MAX(e.employee_id) = (SELECT MAX(MAX(employee_id)) FROM employees GROUP BY department_id);

我收到的不是单组分组功能错误。 这是为什么?

如果没错,这就是您要寻找的

SELECT * 
FROM   (SELECT d.department_name, 
               c.country_name 
        FROM   employees e 
               INNER JOIN departments d 
                       ON e.department_id = d.department_id 
               INNER JOIN locations l 
                       ON d.location_id = l.location_id 
               INNER JOIN countries c 
                       ON l.country_id = c.country_id 
        GROUP  BY d.department_name, 
                  c.country_name 
        ORDER  BY Count(1) DESC) 
WHERE  ROWNUM = 1 

这是你想要的吗?

SELECT d.department_name, c.country_name FROM employees e, departments d, locations l, countries c
WHERE d.location_id = l.location_id AND l.country_id = c.country_id
AND ROWNUM = 1
ORDER BY e.employee_id DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM