sql - 查找受监管人数最多的 manager_id
问题描述
我无法在 下显示最多的人manager_id
。答案是manager_id = 100
,但我似乎无法制作一个显示它的 sql。以下是创建并提供给我的 2 个表。
CREATE TABLE departments
( department_id NUMBER(4)
, department_name VARCHAR2(30)
CONSTRAINT dept_name_nn NOT NULL
, manager_id NUMBER(6)
, location_id NUMBER(4)
) ;
CREATE TABLE employees
( employee_id NUMBER(6)
, first_name VARCHAR2(20)
, last_name VARCHAR2(25)
CONSTRAINT emp_last_name_nn NOT NULL
, email VARCHAR2(25)
CONSTRAINT emp_email_nn NOT NULL
, phone_number VARCHAR2(20)
, hire_date DATE
CONSTRAINT emp_hire_date_nn NOT NULL
, job_id VARCHAR2(10)
CONSTRAINT emp_job_nn NOT NULL
, salary NUMBER(8,2)
, commission_pct NUMBER(2,2)
, manager_id NUMBER(6)
, department_id NUMBER(4)
, CONSTRAINT emp_salary_min
CHECK (salary > 0)
, CONSTRAINT emp_email_uk
UNIQUE (email)
) ;
下面是我的代码,我试图将这两个表连接起来,employees
并在它们之间departments
找到manager_id
出现次数最多的表。
每次我尝试运行我的 sql 块时,它都会给我一个错误,"ORA-00918: column ambiguously defined"
或者有什么问题Limit 1
SELECT COUNT(Manager_id) into v_manager_id,
FROM departments d
RIGHT JOIN employees e
ON d.manager_id = e.manager_id
GROUP BY Manager_id
ORDER BY COUNT(Manager_id) DESC
LIMIT 1;
解决方案
这将起作用:
select manager_id
from (select manager_id,count(*)
from employees
group by manager_id
order by
count(*) desc)
where rownum<=1 ;
您还可以像这样使用嵌套子查询:
create table ns_231(col1 number,col2 number);
insert into ns_231 values(1,1);
insert into ns_231 values(2,3);
insert into ns_231 values(3,3);
insert into ns_231 values(1,2);
insert into ns_231 values(2,5);
insert into ns_231 values(2,1);
insert into ns_231 values(3,1);
insert into ns_231 values(1,4);
SELECT * FROM ns_231;
commit;
select col1 from (select col1,count(*) from ns_231 group by col1 order by count(*) desc) where rownum<=1 ;
select col1 from ns_231 group by col1
having count(*)=(select max(total) from (select count(*) as total from
ns_231 group by col1));
输出:
1
2
对于您的表,查询是:
select manager_id from employees group by manager_id
having count(*)=(select max(total) from (select count(*) as total from
employees group by manager_id));
推荐阅读
- javascript - 无法覆盖 Webview 中的 javascript 函数
- c# - 将一种编码转换为另一种编码的最快方法
- reactjs - 反应打字稿Webpack块大小
- kubernetes - 更新 pod 中的默认搜索域
- java - Map 接口是否扩展或实现了其他接口或类?
- java - 使用 jWindow 作为启动画面,显示效果很好,但图像不画……只是打开了空白的 jWindow……有什么想法吗?
- regex - 剂量 regexp_replace 不能在 postgresql 中使用多正则表达式(|)?否则我该怎么办?
- python - 您如何在一页中列出用户关注的所有帐户及其下方的相应项目?
- c++ - 编写了一个程序,显示与用户输入对应的斐波那契数,但它从零而不是一开始?
- javascript - 我该如何解决这个字符串长度问题?