通过子查询和 JOIN | 在 COUNT 上应用 MAX SQL 甲骨文
Applying MAX on COUNT with sub queries and JOIN | SQL Oracle
我正在尝试列出分配给其工作的员工人数最多的项目。
这只列出了给定项目的最高雇员人数...
SELECT MAX(number_employees)
FROM
(SELECT COUNT(a.employee_id) AS number_employees
FROM assignment a
JOIN project p
ON p.project_id = a.project_id
GROUP BY a.project_id, p.project_name);
这列出了所有项目的员工人数...
SELECT a.project_id, p.project_name, COUNT(a.employee_id) AS number_employees
FROM assignment a
JOIN project p
ON p.project_id = a.project_id
GROUP BY a.project_id, p.project_name;
但是,我试图列出所有项目,但只列出员工人数最多的项目。
谢谢
您可以使用带有 FETCH
子句的第一个查询,如下所示:
SELECT a.project_id, p.project_name, COUNT(a.employee_id) AS number_employees
FROM assignment a
JOIN project p ON p.project_id = a.project_id
GROUP BY a.project_id, p.project_name
order by number_employees desc
fetch first 1 row WITH TIES
我正在尝试列出分配给其工作的员工人数最多的项目。
这只列出了给定项目的最高雇员人数...
SELECT MAX(number_employees)
FROM
(SELECT COUNT(a.employee_id) AS number_employees
FROM assignment a
JOIN project p
ON p.project_id = a.project_id
GROUP BY a.project_id, p.project_name);
这列出了所有项目的员工人数...
SELECT a.project_id, p.project_name, COUNT(a.employee_id) AS number_employees
FROM assignment a
JOIN project p
ON p.project_id = a.project_id
GROUP BY a.project_id, p.project_name;
但是,我试图列出所有项目,但只列出员工人数最多的项目。
谢谢
您可以使用带有 FETCH
子句的第一个查询,如下所示:
SELECT a.project_id, p.project_name, COUNT(a.employee_id) AS number_employees
FROM assignment a
JOIN project p ON p.project_id = a.project_id
GROUP BY a.project_id, p.project_name
order by number_employees desc
fetch first 1 row WITH TIES