cume_dist
如果按升序排列,则统计:小于等于当前值的行数/总行数(number of rows ≤ current row)/(total number of rows)。如果是降序排列,则统计:大于等于当前值的行数/总行数。
示例:
1. 统计小于等于当前工资的人数占总人数的比例。
SELECT name,
dept_no,
salary,
cume_dist() OVER (ORDER BY salary) as cume_dist
FROM data;
结果:
+-------+-------+------+---------+
|name |dept_no|salary|cume_dist|
+-------+-------+------+---------+
|rose |2 |4000 |0.125 |
|jack |2 |5000 |0.375 |
|steven |3 |5000 |0.375 |
|john |1 |6000 |0.5 |
|jerry |2 |6600 |0.625 |
|tom |1 |8000 |0.75 |
|richard|3 |9000 |0.875 |
|mike |1 |10000 |1.0 |
+-------+-------+------+---------+
如果要统计大于等于当前工资的人数占总人数的比例,只需更改salary排序规则为降序desc即可。
2. 根据部门统计小于等于当前工资的人数占部门总人数的比例
SELECT
name,
dept_no,
salary,
cume_dist() OVER (PARTITION BY dept_no ORDER BY salary) as cume_dist
FROM data;
具体应用:
SQL进阶技巧:Hive如何巧解和差计算的递归问题?【应用案例2】-CSDN博客
SQL进阶技巧:Hive URL解析函数详解及实际应用-CSDN博客
SQL进阶技巧:用户浏览日志分析【访问量、活跃用户、新增用户、留存用户、流失用户、沉默用户、回流用户】-CSDN博客
SQL 进阶技巧:断点重分组应用求连续段的最后一个数及每段的个数【拼多多面试题】_hql面试题46【拼多多面试题】-CSDN博客
SQL高级技巧:如何进行字符串收缩变换【京东面试题】_hivesql 对字符串中间部分改动-CSDN博客
SQL进阶技巧:断点重分组算法应用断电次数及断电时长统计_sql统计设备运行和停机时长-CSDN博客 SQL进阶技巧:如何按照区间或时段对数据进行动态分桶?_sql分时间段(分区间)统计问题--hivesql面试题20-CSDN博客