SQL 开窗函数:percent_rank()和cume_dist()累积百分比
语句:比较增加SQL记录比例的结果
select tag, percent_rank() over(order by tag asc), cume_dist() over(order by tag asc) from examination_info;
图一
图二
图三
图四
percent_rank():用于返回某个数值在数据集中的百分比排位,对顺序敏感,取决over里的order by的顺序
搜到的公式:(rank - 1) / (total_rows - 1) #减去1表示去掉该数值个数做评估
MySQL PERCENT_RANK函数-之路教程 (onitroad.com)
其他解释:比如图一的SQL,SQL比它小的只有pyhon一个排前面,大于等于它的一个排后面,所以1/2=50%
图二:SQL比它小的只有pyhon一个排前面,大于等于它的有2个,所以1/(1+2)
图三:SQL比它小的只有pyhon一个排前面,大于等于它的有3个,所以1/(1+3)
图四:SQL比它小的只有pyhon2个排前面,大于等于它的有2个,所以2/(2+2)=0.5
排位函数RANK和PERCENTRANK的用法比较 - 知乎 (zhihu.com)
cume_dist():累积百分比