在工作中经常需要用到行列转换进行聚合统计之类的事儿,现在就说一个最简单最通用的方法,适应sum ()/max ()/min()等函数结合解码来实现行列转换,拿甲骨文中典型的scott.emp表为例,,
可以看到很容易的实现了数据的统计只
当然行列的转换的方法还有其他几种,如使用例时,或者使用wmsys。wm_concat函数都都可以实现。不过上面的方法算是最容易理解了的吧。
点击()折叠或打开
-
<李>
SCOTTEMP
李> <李> EMPNO ENAME工作经理HIREDATE SAL通讯DEPTNO
李> <李>
李> <李> ,7369年史密斯职员7902 19801217 80000 20
李> <李> 7499年,艾伦推销员7698 30000 160000 1981220 30
李> <李> ,7521病房推销员7698 1981222 125000 50000 30
李> <李> 7566年,琼斯经理7839 198142 297500 20
李> <李> 7654年,马丁推销员7698 140000 125000 1981928 30
李> <李> 7698年,布雷克经理7839 198151 285000 30
李> <李> 7782年,克拉克经理7839 198169 245000 10
李> <李> ,7788分析师斯科特7566 1987419 300000 20
李> <李> 7839年,王主席19811117 500000 10
李> <李> 特纳,7844年销售7698 198198 150000 000 30
李> <李> ,7876亚当斯职员7788 1987523 110000 20
李> <李> 7900年,JAMES CLERK 7698 1981123 95000 30
李> <李> 7902年,福特分析师7566 1981123 300000 20
李> <李> 7934年,米勒职员7782 1982123 130000 10
李> <李> 14个选择 李>
点击()折叠或打开
-
<李>
deptno
李> <李> 2下才能sal0琼斯
李> <李> 3下才能sal0布莱克
李> <李> 4下才能sal0克拉克
李> <李> 5下才能sal0斯科特
李> <李> 6下才能sal0王
李> <李> 7下才能sal0福特
李> <李> 8才能scottemp
李> <李> 9才能deptno
李> <李> ,10
李> <李> 琼斯DEPTNO布雷克克拉克斯科特王福特
李> <李>
李> <李> ,,,30 0 0 0 475 109166666 0
李> <李> ,,,1200 0 0 220 595 160
李> <李> ,,,10 0 0 433333333 0 433333333 0 李>
可以看到很容易的实现了数据的统计只
当然行列的转换的方法还有其他几种,如使用例时,或者使用wmsys。wm_concat函数都都可以实现。不过上面的方法算是最容易理解了的吧。