计算百分位数的三种方法 您所在的位置:网站首页 25分位数如何计算 计算百分位数的三种方法

计算百分位数的三种方法

2024-05-29 01:51| 来源: 网络整理| 查看: 265

百分位数:如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组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 实验室设备网 版权所有