Выбрать с датой из новой строки - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть таблица, которая выглядит так:

containerID StartDate,  EndDate
10          2018-09-01  2019-10-01  
5           2018-08-12  2019-08-01
1           2018-08-02  2019-09-01

Мне нужен оператор выбора, который возвращает эти строки, но конечной датой должна быть дата начала следующей строки, если есть строка выше, в противном случае дата окончания тех же строк

Таким образом, результат должен быть таким:

containerID StartDate,  EndDate
10          2018-09-01  2019-10-01  
5           2018-08-12  2018-09-01
1           2018-08-02  2018-08-12

Это также должно работать, если есть только одна строка и если нет строк выше при сортировке по убыванию на ID контейнера

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете использовать функцию окна lead():

select containerId, startDate,
       lead(startDate, 1, endDate) over (partition by containerId order by startDate) as EndDate
from t;
...