简体   繁体   English

不是单个组的组函数Oracle SQL

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

I have the following table: 我有下表: 在此处输入图片说明

I have to find the name and the country of the department with the highest number of employees. 我必须找到员工人数最多的部门的名称和国家/地区。

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);

I'm getting a not a single-group group function error. 我收到的不是单组分组功能错误。 Why is that? 这是为什么?

If am not wrong this is what you are looking for 如果没错,这就是您要寻找的

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 

is this what you want? 这是你想要的吗?

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