Как мне написать объединение с этим необычным критерием соответствия?
Я хочу «присоединить к левой части» таблицы, чтобы значение было присоединено не только к соответствующей строке, но и ко всем последующим несовпадающим строкам, вплоть до следующей совпадающей строки. Другими словами, я хочу заполнить нулевые значения предыдущим ненулевым значением.
Пример данных и желаемый результат:
Таблица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