SQL: DENSE_RANK с обязательным минимальным количество повторений рангов

Есть таблица магазинов (markets), с процентным показателем продаж (market_name, sales_percent). Необходимо заинсертить данные в новую таблицу, при этом добавив поле с рангом, относительно других магазинов.

select *, 
case when sales_percent is not null then dense_rank() over(order by sales_percent) end sales_rank
into martkets_with_ranks
from markets

Пример: у нас 50 рангов, такой топ отфильтрованных магазинов и ранги соответственно запросу выше

market_name sales_percent sales_rank
Магазин1 98% 50
Магазин2 97% 49
Магазин3 95% 48
Магазин4 94% 47
Магазин5 94% 47
Магазин6 92% 46
Магазин7 91% 45

А необходимо, что бы два наивысших ранга, повторились минимум по 2 раза (соответственно примеру, это 50 и 49)

market_name sales_percent sales_rank
Магазин1 98% 50
Магазин2 97% 50
Магазин3 95% 49
Магазин4 94% 49
Магазин5 94% 49
Магазин6 92% 48
Магазин7 91% 47

Есть идеи, как можно реализовать ?


Ответы (0 шт):