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