2016-04-12 9 views
0

Mit den folgenden Daten in einer Tabelle:
ID --------- Kategorie --------- Wert
1234 ----- --- Cat01 ----------- V001
1234 -------- Cat02 ----------- V002
1234 ------- - Cat03 ----------- V003
1234 -------- Kat03 ----------- V004
1234 -------- Kat03 ----------- V005
Pivot-Tabelle in PostgreSQL wiederholende Werte in Spalten

Ich möchte folgende Ausgabe haben:

ID --------- Cat01 --------- Cat02 --------- Cat03
1234 ------- V001 ------ ---- V002 ---------- V003
1234 ------- V001 ---------- V002 ---------- V004
1234 ------- V001 ---------- V002 ---------- V005

Wie kann es in PostgreSQL getan werden. Wie Sie sehen können, wird der Wert in den Spalten Cat01 und Cat02 für jeden Eintrag in der Cat03-Spalte
wiederholt. Vielen Dank für Ihre Hilfe!

+0

sind Sie garantiert nur 3 Kategorien haben? –

+0

Ich habe mehr als 3 Kategorien, aber die Nummer ist fest, ist nicht dynamisch. Ich habe insgesamt 10 Kategorien. Einige Kategorien können mehr als einen Wert haben (wie im Beispiel mit Cat03), und für die Kategorien, die einen Wert haben, den Wert für die Kategorien mit mehreren Werten wiederholen. – Aleps

Antwort

1

Wie wäre es etwa so:

SELECT a.val AS cat01, b.val AS cat02, c.val AS cat03 
FROM 
    test_pivot AS a, 
    test_pivot AS b, 
    test_pivot AS c 
WHERE 
    a.category = 'Cat01' 
    AND 
    b.category = 'Cat02' 
    AND 
    c.category = 'Cat03' 
+0

Wenn ich nicht nach ID filtere, werden alle Kombinationen und wird mehr Werte haben, richtig ?? – Aleps

+0

Ja. Ich war mir nicht sicher, was Sie mit ID machen wollten, da Ihr Beispiel nur einen einzigen Wert dafür hat. –