Oracle 显示员工的empno、ename,其中工作计数>;1.
在oracle 11g中的默认表emp中,我需要显示这些员工的姓名及其emp编号,其中作业大于1Oracle 显示员工的empno、ename,其中工作计数>;1.,oracle,greatest-n-per-group,Oracle,Greatest N Per Group,在oracle 11g中的默认表emp中,我需要显示这些员工的姓名及其emp编号,其中作业大于1 如表中所示,有3名经理和2名销售员,应使用ename、emp打印。像总统这样的职位只有1个应该省略。子选区将只返回出现1次以上的职位 外部选择现在只返回此作业子集中的EMPNO EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7839 KING PRESIDENT - 11/17
如表中所示,有3名经理和2名销售员,应使用ename、emp打印。像总统这样的职位只有1个应该省略。子选区将只返回出现1次以上的职位
外部选择现在只返回此作业子集中的EMPNO
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7839 KING PRESIDENT - 11/17/1981 5000 - 10
7698 BLAKE MANAGER 7839 05/01/1981 2850 - 30
7782 CLARK MANAGER 7839 06/09/1981 2450 - 10
7566 JONES MANAGER 7839 04/02/1981 2975 - 20
7788 SCOTT ANALYST 7566 12/09/1982 3000 - 20
7902 FORD ANALYST 7566 12/03/1981 3000 - 20
7369 SMITH CLERK 7902 12/17/1980 800 - 20
7499 ALLEN SALESMAN 7698 02/20/1981 1600 300 30
7521 WARD SALESMAN 7698 02/22/1981 1250 500 30
如下所示,您将需要一个子查询从emp中选择job,您可以在其中计算计数并检查其是否大于1。在子查询之前,您将从emp中选择要显示的EMPNO和ENAME
SELECT EMPNO,ENAME
FROM emp
WHERE JOB IN (SELECT JOB
FROM emp
GROUP BY JOB
HAVING COUNT(*) > 1
)
您可以通过以下方式尝试分组:
SELECT EMPNO, ENAME
FROM emp
WHERE JOB IN (SELECT JOB
FROM emp
GROUP BY JOB
HAVING COUNT(*) > 1)
选择empno、ename、count(作业)
来自emp
按职务分组
计数(工作)>1
计数(职务):具有相同职务的员工数
按职务分组:按职务分组结果,例如3名经理和2名销售员……请始终只标记一个RDBMSSee:我没弄错吧:查询不应返回职员,但应返回分析师? SELECT empno,ename, count(job) FROM emp GROUP BY job HAVING count(job)>1