67.Oracle数据库SQL开发之 高级查询——使用假想评级与分布函数

来源:互联网 发布:slice js 编辑:程序博客网 时间:2024/05/21 09:30

67.Oracle数据库SQL开发之 高级查询——使用假想评级与分布函数

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49847075

假想评级与分布函数可以计算一条新记录在表中的排名和百分比,而不用将其插入表中。

可以结合RANK,DENSE_RANK,PERCENT_RANK,CUME_DIST结合使用。

使用RANK和PERCENT_RANK获得2003年每一种产品类型销量的排名和百分比排名:

select prd_type_id,sum(amount),

    rank() over(order by sum(amount) desc) as rank,

   percent_rank() over (order by sum(amount) desc) as percent_rank fromall_sales

    whereyear=2003

    and amountis not null

    group byprd_type_id

        orderby prd_type_id;

 

PRD_TYPE_ID SUM(AMOUNT)       RANK PERCENT_RANK

----------- ----------- ----------------------

           1  905081.84  1           0

           2  186381.22  4           1

           3  478270.91  2  .333333333

           4  402751.16  3  .666666667

查询计算销量$500 000的假想排名和百分比排名:

store@PDB1> select rank(500000) within group(order by sum(amount) desc) as rank,

   percent_rank(500000) within group (order by sum(amount) desc) aspercent_rank from all_sales

    whereyear=2003

    and amountis not null

    group byprd_type_id

    order byprd_type_id;

 

      RANK PERCENT_RANK

---------- ------------

          2         .25

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击