восстановить значение выше в postgres - PullRequest
0 голосов
/ 28 июня 2018

Я хочу восстановить вышеуказанное значение по имени.

См. Таблицу.

enter image description here

Я бы хотел получить результат, как в столбце перед последним number_week.

Спасибо

1 Ответ

0 голосов
/ 28 июня 2018

Примерно так должно работать:

SELECT number_week,
  name,
  LAG(number_week, 1, number_week) OVER (PARTITION BY name ORDER BY number_week) as before_last_number_week
FROM t1;

версия sqlfiddle

Используются функции окна Lag(). «Окно» - это группа записей, которые можно при желании упорядочить. Здесь мы группируем записи по Name (т.е. две группы / окна) и упорядочиваем их по week_number. Затем с помощью Lag() мы выбираем номер недели предыдущей записи (в этом окне). Lag() может принимать значение по умолчанию, поэтому мы указываем, что значением по умолчанию является текущая запись week_number.

...