Я столкнулся с блокпостом, который кажется простым исправлением, но я не могу найти решение. Я надеюсь, что некоторые люди здесь с немного больше знаний в Oracle SQL могут помочь.Перезапустить последовательность строк Row_Number при выполнении условия
По существу, я строю список вакансий, занимаемый полной датой, что достаточно просто. Общая связь между ними заключается в том, что они все для одного и того же клиента (отдельный номер) и в том же месте (отдельный номер). Моя проблема в том, что мне нужно найти способ прервать и перезапустить этот рейтинг/счет от 1 каждый раз, когда продолжительность между двумя заданиями превышает 30 дней. Вот упрощенная версия того, что я смотрю на:
JOBCOUNT ACCTNUM LOCNUM COMPDATE DURATION
-------- ------- ------ -------- --------
2 001 003 8/21/2015 16:47 15.48763889
3 001 003 10/5/2015 11:31 41.98304398
4 001 003 10/19/2015 9:59 13.21804398
5 001 003 11/13/2015 15:23 24.43752315
6 001 003 11/30/2015 19:19 11.35537037
Как я хотел бы видеть его, в связи с длительностью более 30 на второй линии, заключается в следующем:
JOBCOUNT ACCTNUM LOCNUM COMPDATE DURATION
-------- ------- ------ -------- --------
2 001 003 8/21/2015 16:47 15.48763889
1 001 003 10/5/2015 11:31 41.98304398
2 001 003 10/19/2015 9:59 13.21804398
3 001 003 11/13/2015 15:23 24.43752315
4 001 003 11/30/2015 19:19 11.35537037
Поскольку второе задание выходит за пределы 30-дневного окна, цепочка должна начинаться с одного со следующей работой. Моя проблема заключается в том, что я не могу найти способ разбить данные таким образом, чтобы этот критерий был распознан и также начинался над подсчетом. Нет другого столбца, который бы позволил мне разбивать row_number или dense_rank таким образом (например, общий ключ заказа или системная последовательность заданий для каждой 30-дневной цепочки).
Я пробовал около 20 различных способов проанализировать эти данные из тем, которые я читал здесь, безрезультатно, поэтому любая помощь или идеи о том, как это можно реализовать, будет оценена огромным образом. У меня около 50 000 строк данных, к которым необходимо применить эту последовательность. Я преподаю сам SQL примерно год спустя на лету и на работе. Я ударил свой лимит знаний по этому.
Зачем вам начинать с 2, а не 1? –