计算百分位数的三种方法 | 您所在的位置:网站首页 › 25分位数如何计算 › 计算百分位数的三种方法 |
百分位数:如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数。 下面给出3种计算方式: 1. PERCENT_RANK() OVER(ORDER BY .....)返回某列或某列组合后每行的百分比排序,返回值在0~1之间,使用此函数可以直接得出百分位数 2. RANK() OVER(ORDER BY .....)使用rank()函数可以统计出当前行的排名,配合总数即可算出百分位数,总数使用COUNT(1) OVER() 即可得出 3. COUNT(1) OVER(ORDER BY ..... RANGE BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING)手动调整窗口范围,确认当前行的排名,配合总数即可算出百分位数,总数使用COUNT(1) OVER() 即可得出 下面将举例给出具体使用方法 举例场景:计算学生成绩的百分位数 注:本次测试在oracle环境下完成,不过使用到的函数绝大部分数据库都支持,大家有兴趣的话可以尝试一下其他数据库创建学生成绩表: CREATE TABLE TEST.STUDENT_SCORE( name varchar(20), --学生姓名 course varchar(20), --科目 score NUMBER(5,2) --成绩 );写入测试数据: INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('张三','政治',90.5); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('李四','政治',79.0); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('王五','政治',85.5); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('赵六','政治',93.0); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('小明','政治',92.5); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('小红','政治',88.0); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('小吕','政治',76.5); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('小高','政治',93.0); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('张三','外语',87.0); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('李四','外语',92.0); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('王五','外语',69.5); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('赵六','外语',76.0); INSERT INTO TEST.STUDENT_SCORE (name,course,score) VALUES ('小高','外语',76.0); INSERT INTO TEST.STUDENT_SCORE (name,course, |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |