oracle 列数据转成行数据

year m1 m2 m3 m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4

 

SELECT YEAR
    ,
    max( CASE WHEN rk = 1 THEN average ELSE NULL END ) AS m1,
    max( CASE WHEN rk = 2 THEN average ELSE NULL END ) AS m2,
    max( CASE WHEN rk = 3 THEN average ELSE NULL END ) AS m3,
    max( CASE WHEN rk = 4 THEN average ELSE NULL END ) AS m4 
FROM
    ( SELECT row_number ( ) over ( PARTITION BY year ORDER BY average ) rk FROM input_money ) t 
GROUP BY
YEAR

 

posted @ 2018-05-14 10:26  活泼的大白兔  阅读(507)  评论(0编辑  收藏  举报