rank,dense_rank,row_number,ntile 的比对和使用场景
2017-12-26 17:09
357 查看
1. 准备数据
2.表创建
3.加载数据
4.rank,dense_rank,row_number over 的使用和比较
5.实用场景是 TopN 和 50%数据,3分1数据
6.ntile 分割函数,也比较适用50%数据
1,a,10 2,a,12 3,b,13 4,b,12 5,a,14 6,a,15 7,a,13 8,b,11 9,a,16 10,b,17 11,a,14
2.表创建
create table t_ntile(id int,name string,sal int) row format delimited fields terminated by ',';
3.加载数据
load data local inpath '/root/txt/t_ntile.txt' into table t_ntile;
4.rank,dense_rank,row_number over 的使用和比较
select id,name,sal ,rank() over(partition by name order by sal desc) rank ,dense_rank() over(partition by name order by sal desc)dense ,row_number() over(partition by name order by sal desc)row_number from t_ntile;
5.实用场景是 TopN 和 50%数据,3分1数据
select * from ( select id,name,sal ,rank() over(partition by name order by sal desc) rank ,dense_rank() over(partition by name order by sal desc)dense ,row_number() over(partition by name order by sal desc)row_number ,count(*) over(partition by name) * 0.5 as count from t_ntile )t where t.rank <= t.count;
6.ntile 分割函数,也比较适用50%数据
select * from ( select id,name ,sal ,ntile(2) over(partition by name order by sal desc)n2 ,sal ,ntile(3) over(partition by name order by sal desc)n3 from t_ntile )t where t.n2 = 1;
相关文章推荐
- \t\t排序参数使用变量问题 ROW_NUMBER RANK DENSE_RANK NTILE
- Hive分析窗体函数之NTILE,ROW_NUMBER,RANK和DENSE_RANK
- SQL2005中row_number( )、rank( )、dense_rank( )、ntile( )函数的用法
- (转)SQL Server 2005四个新的排序函数: ROW_NUMBER、RANK、DENSE_RANK 和 NTILE
- SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
- Oracle分析函数-排序排列(rank、dense_rank、row_number、ntile)
- SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
- 分析函数ROW_NUMBER,RANK,DENSE_RANK,FIRST,NTILE,RATIO_TO_REPORT等
- SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER
- 实例数据对比SQL中的ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(),一目了然
- SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
- 关于排序rank () over , row_number() over ,rank_dense ()函数使用
- row_number(),rank,DENSE_RANK,ntile-简单演练
- RANK() ,ROW_NUMBER(),DENSE_RANK( ),ntile( )
- SQL Server:排名函数row_number,rank,dense_rank,ntile详解
- 转:知方可补不足~row_number,rank,dense_rank,ntile排名函数的用法
- rank (),dense_rank (),row_number () 常见的使用和区别
- SQL2005中row_number( )、rank( )、dense_rank( )、ntile( )函数的用法(2)
- SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
- Hive分析窗口函数之NTILE,ROW_NUMBER,RANK和DENSE_RANK