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
, foo
ve bar
o en son değerlerin birleştirilmiş bir görünümünü temsil etmektedir. Diğer bir deyişle, foo
içerdiği takdirde :
ts | foo
--------
1 | A
7 | B
ve bar
iç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. lag
Pencere 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.
foo
vebar
kesinlikle yükseliyor mu yoksa test durumu bu açıdan yanıltıcı mı?