KsenoLv
@KsenoLv
www.kseno.site

Данные следующей строки?

Всем привет.

Есть запрос который выводит 4 строки:
select date, open_close from moex_fin m
where open_close BETWEEN 3.15 * 0.985 AND 3.15 * 1.005;

623988b8808e6323078251.png
Задача, вывести рядом значения следующего дня. Таблица одна и та-же.
Не могу понять что не так, выводит только два значения вместо 4.
select m.date, m.open_close, mo.date, mo.open_close from moex_fin m
	JOIN moex_fin mo ON (m.date + 1 = mo.date)
	where m.open_close BETWEEN 3.15 * 0.985 AND 3.15 * 1.005;

6239895f58443106844977.png
Подскажите кто знает.
Заранее благодарю.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
PostgreSQL provides function `lead` for this case
PostgreSQL предоставляет функцию `lead` для этого случая.
with d as (
  select 
	  date, 
	  open_close,
	  lead(date) over (order by date asc) next_date,
	  lead(open_close) over (order by date asc) next_open_close
  from moex_fin m
) select * from d
where open_close BETWEEN 3.15 * 0.985 AND 3.15 * 1.005
;


PostgreSQL lead window function
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Потому что у вас JOIN, и если сцепить с той стороны нечего, то и с этой не выводит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы