SQL нумерация строк заново row_number
1 поле даты, 2е скидка
что делает:1 + (ROW_NUMBER() OVER(PARTITION BY discount ORDER BY date) - 1) % 14
Дата Скидка RN надо
01.01.21 17 1 1
02.01.21 17 2 2
03.01.21 18 1 1
03.01.21 17 3 1
те если значение прерывается, то начинать заново, а не продолжать предыдущий порядок. и 2й случай, когда нужно учитывать порядковую нумерацию те если даты 01.01.21 и 02.01.21, то 1 и 2, если 01.01.21 и 03.01.21, то 1 и 3