[英]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.