Zeilen-Werte als Spalten in PostgreSQL
Habe ich Folgendes brands
Tabelle mit total
Umsatz pro month
als Ergebnis einer vorherigen Abfrage:
id | date | total
-----+----------+------
123 | Apr-2012 | 100
123 | Mar-2012 | 150
123 | Jan-2012 | 500
987 | Apr-2012 | 5
987 | Mar-2012 | 0.10
987 | Feb-2012 | 8
Ich bin auf der Suche, um Folgendes zu erreichen:
id | Apr-2012 | Mar-2012 | Feb-2012 | Jan-2012
123 | 100 | 150 | 0 | 500
987 | 5 | 0.10 | 8 | 0
Wie verwende ich die date
Werte als Spalten und in der Lage sein, um die fehlenden Daten mit 0 Summen?
- Ich bin nicht vertraut mit postgres, aber sollten Sie wahrscheinlich haben einen Blick auf die Kreuztabellen-Funktion: postgresql.org/docs/9.1/static/tablefunc.html
- Was Sie wollen, ist ein PivotTabelle(Kreuztabelle für postgres)
- verdammt, du bist zu googeln schneller als ich 🙂
- Danke Jungs - ich werde in diesem Blick.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
Kreuztabelle()
- Abfrage für dein Beispiel würde so Aussehen:Ausfüllen
0
für die daraus entstehendenNULL
Werte (Anfrage im Kommentar), verwenden SieCOALESCE()
:Ausführliche Erklärung und die links, die in diesem Zusammenhang zu beantworten:
PostgreSQL Kreuztabelle Abfrage
Beiseite: nicht mit dem reservierten Wort "Datum" die Spalte name und Sie sollte nicht entweder, auch wenn Postgres erlaubt.