SQL按总和排名

问题描述 投票:0回答:1

我有一个数据表,里面有以下项目。

Item#    Description      Company ID     Sales       
----------------------------------------------
1          wigit 1         521           500
2          wigit 2         521           700
1          wigit 1         663           200
2          wigit 2         663           300
3          wigit 3         521           300

我想做的是把数据拉成一种格式 让我看到521公司的销售量在1位数排名第一 但1位数的销售量在我们的整个销售阵容中只排在第19位 我们在特定的时间内销售给所有的公司 从这里,我会向领导层提供一个18的销售差距数字,看看哪些公司可以注意的项目。

我想从样表中得到的结果是拉出521公司与整个公司的对比情况

Item #  Description  Company 521 Rank   Company 663 Rank Total Ranking      
----------------------------------------------------------------
1          wigit 1               2                2         3
2          wigit 2               1                1         2 
3          wigit 3               3                3         1

希望这有意义,不知道是否可以用Rank。 结果将进入Power BI

sql rank
1个回答
0
投票

如果我的理解正确,你可以使用 rank() 中的一个子查询,得到公司的排名。 然后再进行外在的汇总。

select Item#, Description,
       max(case when CompanyId = 521 then seqnum_c end) desc) as rank_521,
       max(case when CompanyId = 663 then seqnum_c end) desc) as rank_663,
       rank() over (order by sum(sales) desc) as overall_rank
from (select t.*,
             rank() over (partition by coompanyid order by sales desc) as seqnum_c
      from t
     ) t
group by Item#, Description
© www.soinside.com 2019 - 2024. All rights reserved.