SQL Рейтинг по сумме - PullRequest
       18

SQL Рейтинг по сумме

0 голосов
/ 01 мая 2020

У меня есть таблица данных со следующими элементами:

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

То, что я пытаюсь сделать, это извлечь данные в формате, который позволит мне увидеть, что wi git 1 занимает первое место в Продажи для Компании 521, но мы git занимаем только 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

Надеюсь, что в этом есть какой-то смысл, не уверенный, возможно ли это с рангом или нет. Результат будет go в Power BI

1 Ответ

0 голосов
/ 01 мая 2020

Если я правильно понимаю, вы можете использовать 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
...