Мне нужно увеличивать +1 каждые 4 записи по столбцу таблицы, я пытался использовать ROW_NUM(), но мое грязное обходное решение не имеет смысла.Инкрементное значение для столбца каждый N записей в таблице
Это то, что мне нужно:
Index PeriodID
1 1
1 2
1 3
1 4
2 5
2 6
2 7
2 8
PeriodID является первичным ключом (кластерный индекс) для таблицы «периодов», я слышал о оконных функциях LAG() и LEAD(), но не уверен, что если Я могу применить концепцию для этого сценария, следующий синтаксис моя не удалось подвох попытка:
выберите row_number() над (распоряжения periodid)/4 + 1, periodid из периодов
Результат я получаю:
Index PeriodID
1 1
1 2
1 3
2 4
2 5
2 6
2 7
3 8
Я понимаю, почему я получаю этот результат, но я хотел бы знать, если есть встроенная функция T-SQL, который может помочь достичь того, что мне нужно.
Любые мысли, предложения приветствуются
Благодаря
NTILE почти это делает, но из неровных групп он будет балансировать их, а не оставлять наименьшее возможное число в последней группе. –