`

oracle 分析函数之percent_rank,percentile_cont,percentile_disc

 
阅读更多

percent_rank函数以0到1之间的分数形式返回某个值在数据分区中的排名 个人感觉适用场景较少

 

建表:

create table SMALL_CUSTOMERS(CUSTOMER_ID NUMBER,SUM_ORDERS  NUMBER);     
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 10);     
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 20);     
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (1000, 30);     
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (800, 5);     
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (800, 10);     
insert into SMALL_CUSTOMERS (CUSTOMER_ID, SUM_ORDERS) values (800, 1); 

 

具体用法:

select customer_id,
       sum_orders,
       percent_rank() over(order by sum_orders) percentRank
  from small_customers t;

 

 

percentile_cont:

       percentile_cont函数对于计算内插值是非常有用的。percentile_cont函数接收一个0到1之间的几率值并返回与声明了排序的percent_rank函数计算值相等的内插值百分比。


语法:percentile_con(expr) within group(sort-clause) over(partition-clause order-by-clause)

 

具体用法:

select customer_id,
       sum_orders,
       percent_rank() over(order by sum_orders) percentRank,
       percentile_cont(0.4) within group(order by sum_orders) over(partition by customer_id) percentileCont
  from small_customers t;

 


 

percentile_disc:

      percentile_disc函数在功能上类似于percentile_cont函数,只是percentile_cont函数使用了连续分布模型,而percentile_disc函数使用了离期 分布模型。当没有值与指定的percent_rank精确匹配的时候,percentile_cont(0.5)会计算两个离得最近的值的平均值。相反,在升序排列的情况下,percentile_disc函数只取比所传递的参数percent_rank值更大的值。在降序排列的时候,percentile_disc函数只取比所传递的参数percent_rank值更小的值。

 

具体用法:

  select customer_id,
         sum_orders,
         percent_rank() over(order by sum_orders) percentRank,
         percentile_cont(0.4) within group(order by sum_orders) over(partition by customer_id) percentileCont,
         percentile_disc(0.4) within group(order by sum_orders) over(partition by customer_id) percentileDisc
    from small_customers t;

 

 

 

  • 大小: 30.1 KB
  • 大小: 38.2 KB
  • 大小: 47.2 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle分析函数

    PERCENTILE_DISC / PERCENTILE_CONT - **定义**:分别计算离散和连续的百分位数。 - **用途**:适用于需要确定数据集中特定百分位数的情况。 ##### 5. RATIO_TO_REPORT - **定义**:计算每个值占总和的比例。 - **...

    Oracle分析函数.doc

    13. **PERCENTILE_DISC** 和 **PERCENTILE_CONT**: 分别返回与给定分布百分比相对应的断点值和连续值。 14. **RATIO_TO_REPORT**: 计算某表达式相对于整个组的比例。 **统计函数**: 15. **STDDEV**、**STDDEV_POP...

    oracle分析函数

    - 报表函数通常指的是与数据分析相关的函数,如CUME_DIST(累积分布)、PERCENT_RANK(百分位排名)和PERCENTILE_CONT/PERCENTILE_DISC(连续/离散百分位数)等,它们在生成统计报告和分析中非常有用。 6. **分析...

    Oracle分析函数[汇编].pdf

    - `PERCENTILE_DISC`:返回与给定百分位数相对应的精确值。 - `PERCENTILE_CONT`:返回与给定百分位数相对应的连续值。 - `RATIO_TO_REPORT`:计算值相对于总和的比例。 5. **OLAP操作**: - `CUBE`:生成所有...

    oracle10g之统计与分析函数

    12. **PERCENTILE_CONT**,**PERCENTILE_DISC**:计算连续百分位数和离散百分位数,用于找到数据集中特定百分比位置的值。 13. **PERCENT_RANK**:计算每行的百分等级,范围在0到1之间。 14. **RANK**:为每个分组中...

    SQL分析函数

    21. **PERCENTILE_DISC**和**PERCENTILE_CONT**:分别返回与输入分布百分比对应的离散值和连续值。 22. **RATIO_TO_REPORT**:计算当前值相对于总和的比例,给出相对于整体的百分比。 此外,Oracle还提供了**CUBE**...

    Oracle连续相同数据的统计

    `CUME_DIST`、`NTILE`、`PERCENT_RANK`、`PERCENTILE_DISC`和`PERCENTILE_CONT`则涉及分布函数,用于计算数据在整体中的分布情况。 统计求和函数如`CUBE`提供了OLAP分析中的立方体计算,允许在多维度上进行数据统计...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    8.7.8 Percentile_disc 215 8.7.9 NTILE 215 8.7.10 Stddev 216 8.7.11 Listagg 217 8.8 性能调优 218 8.8.1 执行计划 218 8.8.2 谓语 219 8.8.3 索引 220 8.9 高级话题 221 8.9.1 动态SQL 221 8.9.2 ...

    SQL初级教程及简单进阶

    这些高级统计功能可以通过窗口函数(Window Functions)实现,如RANK()、PERCENT_RANK()、PERCENTILE_CONT()等。 #### 结论 掌握SQL的基础和进阶知识对于数据分析师、数据库管理员以及任何需要与数据交互的专业人士...

    T-sql 官方文档

    - **`PERCENTILE_DISC`**: 返回离散分布的指定百分位数。 - **`PERCENT_RANK`**: 计算当前行的百分比排名。 #### 四、排序规则 排序规则(Collation)定义了如何比较和排序数据,包括: - **`COLLATIONPROPERTY`*...

Global site tag (gtag.js) - Google Analytics