本帖最后由 nightgoblin 于 2011-11-14 12:24:35 编辑

解决方案 »

  1.   

    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
      

  2.   

    COUNT (e.empno) OVER (PARTITION BY NULL) 中 PARTITION BY NULL怎么解释啊
      

  3.   

    PARTITION BY NULL随手写的,NULL也可以是任意数字,就是不需要分组,取全部的
      

  4.   


    这个常规的写法应当是count(e.empno) over()吧?