Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как для lead() заглянуть вперёд дальше выборки? / 3 сообщений из 3, страница 1 из 1
25.02.2020, 10:53
    #39930451
java-newbie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как для lead() заглянуть вперёд дальше выборки?
доброе время суток.

данные:
Код: sql
1.
2.
3.
4.
5.
6.
7.
id | date       | value
-----------------------
1  | 2020-01-01 | 1
2  | 2020-01-02 | 2
3  | 2020-01-03 | 3
4  | 2020-01-04 | 4
5  | 2020-01-05 | 5


чтобы узнать для каждой строки следующее значение, использую lead():
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT
  date,
  value,
  lead(value, 1) over (ORDER BY date)
FROM table
WHERE date >= '2020-01-01' AND date < '2020-01-05'
ORDER BY date


вернёт:
Код: sql
1.
2.
3.
4.
5.
6.
date       | value | lead
-------------------------
2020-01-01 | 1     | 2
2020-01-02 | 2     | 3
2020-01-03 | 3     | 4
2020-01-04 | 4     | null



но оно ограничивается параметрами выборки, хотя в исходной таблице есть значение для 2020-01-04 - это 5.

как получить вот такой результат с тем же ограничением по датам?
Код: sql
1.
2.
3.
4.
5.
6.
date       | value | lead
-------------------------
2020-01-01 | 1     | 2
2020-01-02 | 2     | 3
2020-01-03 | 3     | 4
2020-01-04 | 4     | 5
...
Рейтинг: 0 / 0
25.02.2020, 11:02
    #39930459
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как для lead() заглянуть вперёд дальше выборки?
java-newbie,
Самый очевидный вариант, но наверное один из неэффективных,
сделать lead во внутреннем запросе, а во внешнем сделать ограничение по датам.
...
Рейтинг: 0 / 0
25.02.2020, 14:57
    #39930636
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как для lead() заглянуть вперёд дальше выборки?
Оконные функции работают после "основной выборки", т.е. сначала отрабатывает WHERE, а уже с результатом работает lead().
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как для lead() заглянуть вперёд дальше выборки? / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]