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;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/120341.html