Как создать диапазоны на 2 строки - PullRequest
0 голосов
/ 06 октября 2018

У меня есть следующая таблица:

+------------+
|    date    |
+------------+
| 2018-07-01 |
| 2018-09-01 |
| 2018-08-01 |
+------------+

Как выполнить запрос таким образом, чтобы получить следующие результаты?

+------------+------------+
|  min_date  |  max_date  |
+------------+------------+
| 2001-01-01 | 2018-07-01 |
| 2018-07-01 | 2018-08-01 |
| 2018-08-01 | 2018-09-01 |
+------------+------------+

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

lag() принимает три аргумента с третьим аргументом по умолчанию, поэтому вы можете записать это как:

select lag(date, 1, '2001-01-01' as date) over (order by date) as min_date,
       date as max_date
from t;
0 голосов
/ 06 октября 2018

Что-то вроде:

select coalesce(lag(date) over(order by date), '2001-01-01'), date 
from t
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...