Выберите топ-2 продаж в каждом классе SQL - PullRequest
0 голосов
/ 02 сентября 2018

enter image description here

У меня есть таблица, в которой я хочу выбрать только топ-2 продаж в каждом классе, результат

Sophia   A 40
Jennifer A 15
Greg     B 50
Jeff     B 20
Stella   B 20 

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

оконная функция density_rank также выполняет ожидаемое условие результата выборочных данных

 select * from
    (select * , dense_rank() over(partition by class order by scores DESC ) as rn 
     from tablea
     ) t where rn<=2
0 голосов
/ 02 сентября 2018

Вы можете использовать RANK:

SELECT *
FROM (SELECT *, RANK() OVER(PARTITION BY class ORDER BY sales DESC) AS rnk
      FROM tab) sub
WHERE rnk <=2;
...