Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
来源:互联网 发布:下载动态壁纸软件 编辑:程序博客网 时间:2024/04/29 05:21
转载地址:
Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
这两个序列分析函数不是很常用,这里也介绍一下。
注意: 序列函数不支持WINDOW子句。(什么是WINDOW子句,点此查看前面的文章)
Hive版本为 apache-hive-0.13.1
数据准备:
d1,user1,1000 d1,user2,2000 d1,user3,3000 d2,user4,4000 d2,user5,5000 CREATE EXTERNAL TABLE lxw1234 ( dept STRING, userid string, sal INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile location '/tmp/lxw11/'; hive> select * from lxw1234; OK d1 user1 1000 d1 user2 2000 d1 user3 3000 d2 user4 4000 d2 user5 5000
CUME_DIST
–CUME_DIST 小于等于当前值的行数/分组内总行数
–比如,统计小于等于当前薪水的人数,所占总人数的比例
SELECT dept, userid, sal, CUME_DIST() OVER(ORDER BY sal) AS rn1, CUME_DIST() OVER(PARTITION BY dept ORDER BY sal) AS rn2 FROM lxw1234; dept userid sal rn1 rn2 ------------------------------------------- d1 user1 1000 0.2 0.3333333333333333 d1 user2 2000 0.4 0.6666666666666666 d1 user3 3000 0.6 1.0 d2 user4 4000 0.8 0.5 d2 user5 5000 1.0 1.0 rn1: 没有partition,所有数据均为1组,总行数为5, 第一行:小于等于1000的行数为1,因此,1/5=0.2 第三行:小于等于3000的行数为3,因此,3/5=0.6 rn2: 按照部门分组,dpet=d1的行数为3, 第二行:小于等于2000的行数为2,因此,2/3=0.6666666666666666
PERCENT_RANK
–PERCENT_RANK 分组内当前行的RANK值-1/分组内总行数-1
应用场景不了解,可能在一些特殊算法的实现中可以用到吧。
SELECT dept, userid, sal, PERCENT_RANK() OVER(ORDER BY sal) AS rn1, --分组内 RANK() OVER(ORDER BY sal) AS rn11, --分组内RANK值 SUM(1) OVER(PARTITION BY NULL) AS rn12, --分组内总行数 PERCENT_RANK() OVER(PARTITION BY dept ORDER BY sal) AS rn2 FROM lxw1234; dept userid sal rn1 rn11 rn12 rn2 --------------------------------------------------- d1 user1 1000 0.0 1 5 0.0 d1 user2 2000 0.25 2 5 0.5 d1 user3 3000 0.5 3 5 1.0 d2 user4 4000 0.75 4 5 0.0 d2 user5 5000 1.0 5 5 1.0 rn1: rn1 = (rn11-1) / (rn12-1) 第一行,(1-1)/(5-1)=0/4=0 第二行,(2-1)/(5-1)=1/4=0.25 第四行,(4-1)/(5-1)=3/4=0.75 rn2: 按照dept分组, dept=d1的总行数为3 第一行,(1-1)/(3-1)=0 第三行,(3-1)/(3-1)=1
0 0
- Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
- Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
- Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
- Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
- HIVE分析窗口函数: CUME_DIST,PERCENT_RANK
- Hive分析窗口函数之CUME_DIST和PERCENT_RANK
- Hive分析函数之CUME_DIST、PERCENT_RANK学习
- [Hive]分析函数 RANK ROW_NUMBER CUME_DIST CUME_DIST
- SQL SERVER中CUME_DIST和PERCENT_RANK函数
- Oracle分析函数总结(3)- 数值分布 - cume_dist,percent_rank,ntile,percentile_disc,percentile_cont,ratio_to_report
- Oracle分析函数总结(3)- 数值分布 - cume_dist,percent_rank,ntile,percentile_disc,percentile_cont,ratio_to_report
- Oracle分析函数总结(3)- 数值分布 - cume_dist,percent_rank,ntile,percentile_disc,percentile_cont,ratio_to_report
- 高级查询 cume_dist()和percent_rank()
- MEDIAN CUME_DIST PERCENT_RANK PERCENTILE_CONT PERCENTILE_DISC
- Hive分析窗口函数
- Hive分析窗口函数(三) LAG,LEAD,FIRST_VALUE,LAST_VALUE
- Hive 窗口函数、分析函数
- Hive 窗口函数、分析函数
- sentinel搭建redis集群经验总结
- android 中native 层的打印堆栈(c++)
- Global Supervised Descent Method
- hdu 5869 Different GCD Subarray Query 离线+树状数组
- Java中Map的使用
- Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
- 最近有几个开源项目值得介绍下
- Android 5.0 转场动画的使用
- Activity生命周期
- easy-ui学习记录-layout布局
- win7下对批量文件重命名(截取原始文件名中的部分作新名字)
- Android编程至高武学之《如来神掌》第一式~佛光初现
- Express介绍
- hadoop集群环境的搭建