zoukankan      html  css  js  c++  java
  • 使用分析函数进行行列转换

    其实使用分析函数进行处理是很好的方式,翻一下Tom的书,将其中的一个例子收录在这里. 比如查询scott.emp表的用户SAL排序信息,可以使用如下查询:
    SQL> SELECT deptno, ename,
    2         ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC) seq
    3    FROM emp;
    DEPTNO ENAME             SEQ
    ---------- ---------- ----------
    10 KING                1
    10 CLARK               2
    10 MILLER              3
    20 SCOTT               1
    20 FORD                2
    20 JONES               3
    20 ADAMS               4
    20 SMITH               5
    30 BLAKE               1
    30 ALLEN               2
    30 TURNER              3
    30 WARD                4
    30 MARTIN              5
    30 JAMES               6
    14 rows selected.


    再结合其他函数进行一下行列转换:
    SQL> select deptno,
    2  max(decode(seq,1,ename,null)) highest,
    3  max(decode(seq,2,ename,null)) second,
    4  max(decode(seq,3,ename,null)) third
    5  from (
    6  select deptno,ename,
    7  row_number() over
    8  (partition by deptno order by sal desc) seq
    9  from emp)
    10  where seq <=3 group by deptno
    11  /
    DEPTNO HIGHEST    SECOND     THIRD
    ---------- ---------- ---------- ----------
    10 KING       CLARK      MILLER
    20 SCOTT      FORD       JONES
    30 BLAKE      ALLEN      TURNER
    这个结果基本上还是差强人意的。
  • 相关阅读:
    崩漏
    李翰卿治疗小儿五更咳嗽经验
    34名国宝级名老中医秘方集锦(一)
    黄煌儿科经方
    中医临床参考
    HTML 动态云启动画面
    CANVAS 水波动态背景
    PHP MYSQL单向同步方案
    PHP 获取指定目录下所有文件(包含子目录)
    JS 深度拷贝 Object Array
  • 原文地址:https://www.cnblogs.com/jimeper/p/713223.html
Copyright © 2011-2022 走看看