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; 

相关文章
相关标签/搜索