Verilen iki tablo:
CREATE TABLE foo (ts timestamp, foo text);
CREATE TABLE bar (ts timestamp, bar text);
Ben döner değerler bir sorgu yazmak isteyen ts, foove baro en son değerlerin birleştirilmiş bir görünümünü temsil etmektedir. Diğer bir deyişle, fooiçerdiği takdirde :
ts | foo
--------
1 | A
7 | B
ve bariçerdiği:
ts | bar
--------
3 | C
5 | D
9 | E
Geri dönen bir sorgu istiyorum:
ts | foo | bar
--------------
1 | A | null
3 | A | C
5 | A | D
7 | B | D
9 | B | E
Her iki tablonun da aynı anda bir etkinliği varsa, siparişin önemi yoktur.
Birlik all ve kukla değerleri kullanarak gerekli yapıyı oluşturabildim:
SELECT ts, foo, null as bar FROM foo
UNION ALL SELECT ts, null as foo, bar FROM bar
Bu bana yeni değerlerin doğrusal bir zaman çizelgesini verecektir, ancak önceki satırlara dayalı boş değerleri nasıl dolduracağımı tam olarak anlayamıyorum. lagPencere işlevini denedim , ancak AFAICT sadece bir önceki satıra bakacak, özyinelemeli olarak geriye değil. Özyinelemeli CTE'lere baktım, ancak başlangıç ve sonlandırma koşullarının nasıl ayarlanacağından emin değilim.
foovebarkesinlikle yükseliyor mu yoksa test durumu bu açıdan yanıltıcı mı?