Как правильно сформировать оконную функцию в запрос?

Есть данные:
cat_id | ad_id | count
60     | 1     | 22
60     | 99    | 22
60     | 3     | 22
42     | 5     | 14
42     | 4     | 14
11     | 12    | 6
11     | 19    | 6
11     | 2     | 6


Как правильно добавить оконную функцию, чтобы получилось:
cat_id | ad_id | count | row_num
60     | 1     | 22    | 1
60     | 99    | 22    | 1
60     | 3     | 14    | 1
42     | 5     | 14    | 2
42     | 4     | 14    | 2
11     | 12    | 14   | 3
11     | 19    | 6     | 3
11     | 2     | 6     | 3

Это необходимо, чтобы дальше в запросе ограничение поставить по этому новому полю row_num, к примеру row_num < 3.

Простое ROW_NUMBER не прокатит, так как он порядковый ряд создает внутри каждого набора cat_id, а мне нужно чтобы он каждому набору навешивал порядковый номер при сортировке по count.
SELECT *, ROW_NUMBER() OVER(
        PARTITION BY cat_id
        ORDER BY count desc
    ) AS row_num
FROM tabl
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы