1. 程式人生 > >oracle的wm_concat函式和排序

oracle的wm_concat函式和排序

oracle中,wm_concat函式是一個聚合函式,和mysql中的group_concat函式類似。
通過wm_concat函式可以實現行轉列
NOCLASS SCORE
10011 99
10022 98
10013 97
10041 98
10051 97
10061 99
10072 98
10083 97


統計 每個CLALSS裡的NO
select class,WM_CONCAT(NO) from A_TEST group by class;
CLASSWM_CONCAT(NO)
11001,1006,1005,1004
21002,1007
31001,1008


結果已經出來,如果想對NO進行排序,可以結合over、partition函式


①先排序
select class,WM_CONCAT(NO) over(partition by class order by no) m from A_TEST;
CLASSM
11001
11001,1004
11001,1004,1005
11001,1004,1005,1006
21002
21002,1007
31001
31001,1008


②取最終結果
select CLASS,MAX(M) from (select class,WM_CONCAT(NO) over(partition by class order by no) m from A_TEST) group by CLASS;
CLASSMAX(M)
11001,1004,1005,1006
21002,1007
31001,1008