窗口函数之cume_dist 函数讲解

 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进阶技巧:用户浏览日志分析【访问量、活跃用户、新增用户、留存用户、流失用户、沉默用户、回流用户】-CSDN博客

SQL进阶技巧:如何计算重叠区间合并问题?-CSDN博客

SQL 进阶技巧:断点重分组应用求连续段的最后一个数及每段的个数【拼多多面试题】_hql面试题46【拼多多面试题】-CSDN博客

 SQL高级技巧:如何进行字符串收缩变换【京东面试题】_hivesql 对字符串中间部分改动-CSDN博客

SQL进阶技巧:断点重分组算法应用断电次数及断电时长统计_sql统计设备运行和停机时长-CSDN博客 SQL进阶技巧:如何按照区间或时段对数据进行动态分桶?_sql分时间段(分区间)统计问题--hivesql面试题20-CSDN博客

SQL进阶技巧:如何将字符串中对应的名称和数值清洗出来?_hql 中文分成单字-CSDN博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值