ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 销售额排名

销售额排名

原创 Linux操作系统 作者:itpubstream 时间:2008-09-17 15:09:39 0 删除 编辑
环境 xp+9i
有一个销售表(业务员,产品,销售额)
003        c                       86
002        c                       76
004        c                       67
005      c                       76
006       c                        55
001        d                       95
002        d                       88
004        d                       82
003        d                       99
要得到按产品分组得到销售额前三名的业务员如
产品  第一                            第二                              第三
c       003 86               002 76,005 76                   004 67

这个第二 有2个(也有可能是多个)
这个sql怎么写






create table test(seller varchar2(5),product varchar2(5),amt number)

insert into test values (003,'c',86);
insert into test values (002,'c',76);
insert into test values (004,'c',67);
insert into test values (005,'c',76);
insert into test values (006,'c',55);
insert into test values (001,'d',95);
insert into test values (002,'d',88);
insert into test values (004,'d',82);
insert into test values (003,'d',99);

select product  ,max(substr(sys_connect_by_path(seller||':'||amt,','),2)) keep (dense_rank last order by decode(rn,1,level,-1)) first,
                 max(substr(sys_connect_by_path(seller||':'||amt,','),2)) keep (dense_rank last order by decode(rn,2,level,-1)) sec,
                 max(substr(sys_connect_by_path(seller||':'||amt,','),2)) keep (dense_rank last order by decode(rn,3,level,-1)) third
from
(select a.*,dense_rank() over (partition by product order by amt desc ) rn,
            row_Number()  over (partition by product order by amt desc ) num
from test a ) a
connect by product=prior product
and    rn=  prior rn
and   num=prior num+1
group by product

product    first          sec           third
c        3:86        2:76,5:76        4:67
d        3:99        1:95        2:88

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15081535/viewspace-448745/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 论坛常用笔记
下一篇: 论坛问题记录
请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    9
  • 访问量
    7553