Jak napisać połączenie z nietypowymi kryteriami dopasowania?
Chcę „pozostawić połączenie” tabeli, aby wartość nie była połączona nie tylko z pasującym wierszem, ale również z kolejnymi niepasującymi wierszami, aż do następnego pasującego wiersza. Innymi słowy, chcę wypełnić wartości null poprzednią wartością inną niż null.
Przykładowe dane i pożądany wynik:
Stółx
:
id
----
1
2
3
4
5
Stóły
:
id | val
----+-----
1 | a
4 | b
Wynikselect 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 |
Pożądany rezultat:
id | val
----+-----
1 | a
2 | a
3 | a
4 | b
5 | b