ich eine Tabelle A, dieJOIN mehrere Zeilen auf mehrere Spalten in einreihige Netezza/Postgres
Date Name Value
----------------------------
2015-01-01 A 12
2015-01-01 B 13
2015-01-01 C 10
2015-01-01 D 9
2015-01-01 E 15
2015-01-01 F 11
2015-01-02 A 1
2015-01-02 B 2
2015-01-02 C 3
2015-01-02 D 4
2015-01-02 E 5
2015-01-02 F 6
2015-01-03 A 7
2015-01-03 B 8
2015-01-03 C 9
2015-01-03 D 10
2015-01-03 E 15
2015-01-03 F 16
....
sieht wie folgt aus, die für jeden Tag einen Wert für jeden Namen enthält. Ich brauche eine zweite Tabelle, die wie folgt
Date Name ValueDate ValueDate+1 ValueDate+2
--------------------------------------------------------------
2015-01-01 A 12 1 7
2015-01-01 B 13 2 8
2015-01-01 C 10 3 9
2015-01-01 D 9 4 10
2015-01-01 E 15 5 15
2015-01-01 F 11 6 16
2015-01-02 A 1 7 ...
2015-01-02 B 2 8 ...
2015-01-02 C 3 9 ...
2015-01-02 D 4 10 ...
2015-01-02 E 5 15 ...
2015-01-02 F 6 16 ...
I, die die Daten korrekt
Date Name ValueDate ValueDate+1 ValueDate+2
----------------------------------------------------------------
2015-01-01 A 2015-01-01 2015-01-02 2015-01-03
2015-01-01 B 2015-01-01 2015-01-02 2015-01-03
2015-01-01 C 2015-01-01 2015-01-02 2015-01-03
2015-01-01 D 2015-01-01 2015-01-02 2015-01-03
2015-01-01 E 2015-01-01 2015-01-02 2015-01-03
2015-01-01 F 2015-01-01 2015-01-02 2015-01-03
...
dann Meine Idee eingegeben hat alles versucht, die Schaffung eines Zwischentisch sieht war eine Art von JOIN auf dem Tisch verwenden, um eine zu Karte, die die geentsprochenen Werte zu den Terminen und verwenden s.th wie
CASE WHEN Date = ValueDate THEN Value ELSE NULL END AS ValueDate+1
ich, um herauszufinden, habe Schwierigkeiten, wie dies in SQL getan werden kann. Ich brauche im Grunde alle Werte über ein Fenster für eine erste Datumssequenz. Um einen Hintergrund zu geben, möchte ich für ein regelmäßiges Zeitintervall sehen, wie sich der Wert in den folgenden x Tagen verhält. Die Datentypen sind Datum für alle Datumsspalten, Varchar für den Namen und Zahlen für die Werte. Das ValueDate + 1 und +2 bedeutet +1/2 Tage. Es kann auch nicht ausgeschlossen werden, dass die Anzahl der Namen im Zeitverlauf konstant bleibt.
dank
Für mich sind das zwei linke Joins und ein Pivot.Wenn Ihre [netezza-Version] (http://www-01.ibm.com/support/docview.wss?uid=swg21669899) "pivoting" unterstützt, müssen Sie möglicherweise dynamic sql verwenden, um die Datumsnamen als zu generieren eine Spaltenüberschrift, insbesondere wenn die Anzahl der Spalten variabel ist. – xQbert