用下面函數將 一、二、二、二、三、4 排序後:函數
select row_number() over (order by 字段 ) from 表名;排序
一、 row_number()select
值:一、二、二、二、三、4 數據
序:一、二、三、四、五、6di
二、rank()co
值:一、二、二、二、三、4 去重
序:一、二、二、二、五、6
三、dense_rank()
值:一、二、二、二、三、4
序:一、二、二、二、三、4
四、ntile(n) 將表裏數據分紅n組返回組號
正好被n整除 平均分紅n組,整除不了則第一組多加1條在去將剩餘數據平均分n-1組,還整除不了將第二組多加一條繼續直到能夠平均分完。
ntile(4) 將數據分紅4組
值 ntile(4)
1 1
2 1
2 2
2 2
3 3
4 4
五、PERCENT_RANK() 分組內當前行的RANK值-1/分組內總行數-1
值 PERCENT_RANK()
1 0
2 0.2
2 0.2
2 0.2
3 0.8
4 1
六、cume_dist() 小於等於當前值的行數/分組內總行數
值 PERCENT_RANK()
1 0.1666
2 0.6666
2 0.6666
2 0.6666
3 0.8333
4 1
collect_set、collect_list group by 分組將每組列轉成行列出來,collect_set對 轉成行的內容去重,collect_list不去重所有列出來。
select depno , collect_list(name) group by depno;