Задать вопрос
@immelnikoff
Изучаю БД

Как оконнной функцией вытащить последнее значение для предыдущего года?

Имеется такая табличка (без поля prev_value):
667e429577332082107023.png
*таблица представлена после сортировки OREDER BY year, updated_at
Необходимо оконной функцией заполнить поле prev_value как это показано выше. А именно, для значений с текущим годом (текщей строкой) нужно заполнить значением value из предыдущего года с максимальным updated_at.

Пробовал сделать примерно так:
last_value(value) over(order by year, updated_at rows range ...)

, но не понимаю как в range можно задать условие для year...
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
Будет что-то вроде
SELECT *,
       ( SELECT value
         FROM tablename t2
         WHERE t1.year - 1 = t2.year
         ORDER BY created_at DESC LIMIT 1 
         ) AS prev_value
FROM tablename t1;
Ответ написан
Ваш ответ на вопрос

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

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