sql排序

 用下面函數將 一、二、二、二、三、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; 

相關文章
相關標籤/搜索