Как мне написать объединение с этим необычным критерием соответствия?

Я хочу «присоединить к левой части» таблицы, чтобы значение было присоединено не только к соответствующей строке, но и ко всем последующим несовпадающим строкам, вплоть до следующей совпадающей строки. Другими словами, я хочу заполнить нулевые значения предыдущим ненулевым значением.

Пример данных и желаемый результат:

Таблицаx:

 id 
----
  1
  2
  3
  4
  5

Таблицаy:

 id | val 
----+-----
  1 | a
  4 | b

Результатselect x.id, y.val from x left join y on x.id=y.id order by x.id;:

 id | val 
----+-----
  1 | a
  2 | 
  3 | 
  4 | b
  5 | 

Желаемый результат:

 id | val 
----+-----
  1 | a
  2 | a
  3 | a
  4 | b
  5 | b

Ответы на вопрос(7)

Ваш ответ на вопрос