当前位置: 代码迷 >> Oracle管理 >> 求一条oracle中scott用户下的查询语句,该怎么处理
  详细解决方案

求一条oracle中scott用户下的查询语句,该怎么处理

热度:218   发布时间:2016-04-24 06:19:31.0
求一条oracle中scott用户下的查询语句
题目:统计员工人数高于各部门平均人数的部门(要求列出部门ID,部门名称)
这个是我自己写的一条SQL语句,很复杂,希望能写一个比较简单的语句。
SQL code
SELECT DISTINCT a.deptno,dept.dname FROM (SELECT deptno,COUNT(empno) AS count_dpem FROM emp GROUP BY deptno) a INNER JOIN(SELECT emp.deptno,e.count_empno/d.count_deptno AS avg_empno FROM (SELECT COUNT(deptno) AS count_deptno FROM dept) d,(SELECT COUNT(empno) AS count_empno FROM emp) e,emp) bON a.deptno=b.deptnoINNER JOIN dept ON a.deptno=dept.deptnoWHERE a.count_dpem>b.avg_empno;



------解决方案--------------------
SQL code
SELECT   deptno, dname    FROM (SELECT e.deptno, d.dname,                 COUNT (e.empno) OVER (PARTITION BY e.deptno) dcount,                 COUNT (e.empno) OVER (PARTITION BY NULL) ecount,                 COUNT (DISTINCT (d.deptno)) OVER (PARTITION BY NULL)                                                                    deptcount            FROM emp e, dept d           WHERE e.deptno = d.deptno)   WHERE dcount > (ecount / deptcount)GROUP BY deptno, dname
  相关解决方案