其实使用分析函数进行处理是很好的方式,翻一下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

这个结果基本上还是差强人意的。

使用分析函数进行行列转换相关推荐

  1. 用ORACLE分析函数实现行列转换

    摘 要 对数据库中的数据用SQL实现行列转换,不但需要编写复杂的程序代码,还需要编写存储过程.若引入ORACLE中的分析函数则会使该过程简便很多.首先找出表中所有关键字的属性个数的最大值,设为n,其次 ...

  2. oracle行列转换总结

    最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结, 希望对大家有所帮助,同时有何错疏,恳请大家指出, 我也是在写作过程中学习,算是一起和大家学习吧. 行列转换包括以下六 ...

  3. Oracle 行列转换

    Oracle 行列转换 1.固定列数的行列转换 如 student subject grade --------- ---------- -------- student1 语文 80 student ...

  4. oracle中行列转换总结

    oracle中行列转换 1.行列转换包括以下六种情况: 2. 列转行 2.1 UNION ALL 2.2 MODEL 2.3 COLLECTION 2.4 UNPIVOT 3. 行转列 3.1 AGG ...

  5. Oracle如何实现动态行列转换,Oracle实现行列转换的方法分析

    本文实例讲述了Oracle实现行列转换的方法.分享给大家供大家参考,具体如下: 1.固定列数的行列转换 如: sql;"> student subject grade -------- ...

  6. Hive-day06基本函数_窗口函数_行列转换_UDF_连续登录问题

    hive-基本函数_窗口函数_行列转换_UDF_连续登录问题 目录 hive-基本函数_窗口函数_行列转换_UDF_连续登录问题 SQL练习 hive语句的执行顺序 from-->join--& ...

  7. [转载]SQL Server行列转换实现

    一.Pivot和UnPivot介绍 1.Pivot介绍 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVO ...

  8. SQL Server 行列转换(2)

    参考前一个例子http://www.cnblogs.com/insus/articles/1969896.html,现想使用另外一种方式来处理行列转换,实现下面效果: 参考代码: View Code ...

  9. Oracle 行列转换总结

    行列转换包括以下六种情况: *列转行 *行转列 *多列转换成字符串 *多行转换成字符串 *字符串转换成多列 *字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的 ...

最新文章

  1. Android之文件数据存储
  2. WIFI搜索的到别人,却找不到自己家的wifi
  3. 控制台和Win32 API程序输出变量地址值
  4. 【Zabbix】配置 腾讯企业邮箱 发送报警邮件
  5. 将变量区分_【统计学】区分定类、定序、定距、定比变量!
  6. 【Maven学习笔记(二)】Maven的安装与配置
  7. golang web服务器_使用Go制作自己的Web服务器:快速指南
  8. mariadb mysql 配置文件_Mariadb配置文件优化参数(仅供参考)
  9. Nginx源码分析 - Event事件篇 - Event模块和配置的初始化(16)
  10. 在 Angular 8 中,我们可以期待些什么
  11. 全面质量管理体系方案
  12. #低码系列#如何设计一个低代码平台?
  13. 计算机检索的主要方法,计算机检索主要途径和方法
  14. 谷歌浏览器清除百度广告
  15. PowerMILL 2018四五轴编程后处理宏制作视频教程
  16. ubantu下QT连接数据库mysql
  17. MySQL学习笔记(持续更新ING)
  18. Python入门学习(五)
  19. go 库 viper 配置解析神器
  20. go-gorilla的ping pong

热门文章

  1. 利用sshpass实现ansible功能
  2. 基于RBAC的设计思路
  3. Annotation 的前世今生
  4. spring cloud netflix
  5. EJB和JavaBean的区别
  6. 通过反射越过泛型检查
  7. request获得请求行的内容
  8. 微服务调用组件Feign:简介以及搭建环境
  9. 新版本springboot-整合多数据源拆分思路
  10. Topic交换器-搭建环境