Be alaways javaing...

          Loving Java
          posts - 43, comments - 5, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          1.   select * from emp;

              EMPNO ENAME  JOB        MGR HIREDATE     SAL COMM  DEPTNO
              ----- ------ --------- ---- ----------- ---- ---- -------
               7369 SMITH  CLERK     7902 17-DEC-1980  800           20
               7499 ALLEN  SALESMAN  7698 20-FEB-1981 1600  300      30
               7521 WARD   SALESMAN  7698 22-FEB-1981 1250  500      30
               7566 JONES  MANAGER   7839 02-APR-1981 2975           20
               7654 MARTIN SALESMAN  7698 28-SEP-1981 1250 1400      30
               7698 BLAKE  MANAGER   7839 01-MAY-1981 2850           30
               7782 CLARK  MANAGER   7839 09-JUN-1981 2450           10
               7788 SCOTT  ANALYST   7566 09-DEC-1982 3000           20
               7839 KING   PRESIDENT      17-NOV-1981 5000           10
               7844 TURNER SALESMAN  7698 08-SEP-1981 1500    0      30
               7876 ADAMS  CLERK     7788 12-JAN-1983 1100           20
               7900 JAMES  CLERK     7698 03-DEC-1981  950           30
               7902 FORD   ANALYST   7566 03-DEC-1981 3000           20
               7934 MILLER CLERK     7782 23-JAN-1982 1300           10

          2.問題:查找DEPTNO 20中出現最多次數的工資?
           select sal
                from emp
               where deptno = 20
               order by sal

                     SAL
              ----------
                     800
                    1100
                    2975
                    3000
                    3000

          3.解決方案
          使用窗口函數 DENSE_RANK,把工資重復出現的次數分等級。
            1     select sal
            2       from (
            3     select sal,
            4            dense_rank()over( order by cnt desc) as rnk
            5       from (
            6     select sal, count(*) as cnt
            8       from emp
            9      where deptno = 20
           10      group by sal
           11            ) x
           12            ) y
           13      where rnk = 1 
          主站蜘蛛池模板: 垣曲县| 昌图县| 儋州市| 会理县| 孝感市| 孟州市| 霍州市| 东乡县| 积石山| 保德县| 延寿县| 辽阳市| 旬邑县| 夹江县| 武定县| 江川县| 阳原县| 丹东市| 博野县| 马公市| 白河县| 甘肃省| 三台县| 桐柏县| 海阳市| 永济市| 凤冈县| 涡阳县| SHOW| 蓬溪县| 耿马| 淮北市| 紫金县| 西城区| 景德镇市| 高清| 丹东市| 晋城| 无为县| 潜江市| 西昌市|