使用分析函数进行行列转换
2007-04-14 14:19
197 查看
其实使用分析函数进行处理是很好的方式,翻一下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
相关文章推荐
- 使用分析函数为记录进行分组排名(rank, dense_rank, row_number)——分析函数2
- Shell使用Epoch进行日期时间转换和计算的几个小函数
- 使用分析函数进行行列转换
- 使用Epoch进行日期时间转换和计算的几个Shell小函数
- 使用分析函数进行行列转换
- 备忘----创建套接字进行地址和端口进行网络序转换时使用ipv4和ipv6都通用的函数
- 使用Python内置的模块与函数进行不同进制的数的转换
- SQLServer行列转换PIVOT函数中聚合函数的使用意义及选择
- excel 中如何使用函数替代case when 进行转换
- 使用分析函数进行行列转换
- 使用 sprintf swprintf 函数进行 unicode 与 ANSI 编码的转换
- 使用Pivot进行行列转换不能合并为一行的问题
- 关天ORACLE分析函数和行列转换通用包程序
- 使用sprintf及sscanf函数进行CString与CTime之间的转换
- 使用Androguard配合Gephi生成apk的函数调用图进行静态分析
- html 5 使用 js 函数来进行页面转换
- Oracle技术之使用分析函数进行行列转换
- 开发 PostgreSQL 的 Cast 函数进行类型转换, 使用 CREATE CAST
- php关于使用iconv(...)函数对字符进行中文转换时,遇到的一个问题
- 使用Python内置的模块与函数进行不同进制的数的转换