Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich eine Pivot-Tabelle in PostgreSQL, um die durchschnittlichen Immobilienpreise nach Stadtteil und Anzahl der Schlafzimmer zusammenzufassen?
Erstellen von Pivot-Tabellen in PostgreSQL zur Analyse von Immobilienpreisen
PostgreSQL bietet leistungsstarke Funktionen zur Datenzusammenfassung, einschließlich der Erstellung von Pivot-Tabellen. Dieses Beispiel zeigt, wie eine Pivot-Tabelle erstellt wird, die die durchschnittlichen Immobilienpreise gruppiert nach Stadtteil und Anzahl der Schlafzimmer anzeigt.
Schritt 1: Berechnen Sie die Durchschnittspreise pro Stadtteil und Anzahl der Schlafzimmer
Zuerst berechnen wir den Durchschnittspreis für jede einzelne Kombination aus Nachbarschaft und Schlafzimmeranzahl:
<code class="language-sql">SELECT neighborhood, bedrooms, AVG(price) AS avg_price FROM listings GROUP BY neighborhood, bedrooms ORDER BY neighborhood, bedrooms;</code>
Diese Abfrage gruppiert die listings
Tabellendaten nach neighborhood
und bedrooms
und berechnet den Durchschnitt price
für jede Gruppe. Die Ergebnisse werden dann der Übersichtlichkeit halber geordnet.
Schritt 2: Pivotieren Sie die Daten mit crosstab()
Um die aggregierten Daten in ein Pivot-Tabellenformat umzuwandeln, verwenden wir die Funktion crosstab()
:
<code class="language-sql">SELECT * FROM crosstab( 'SELECT neighborhood, bedrooms, avg_price FROM ( SELECT neighborhood, bedrooms, AVG(price) AS avg_price FROM listings GROUP BY neighborhood, bedrooms ORDER BY neighborhood, bedrooms )', $$SELECT unnest('{0,1,2,3}'::int[])::text$$ ) AS ct ("neighborhood" text, "0" int, "1" int, "2" int, "3" int);</code>
Die Funktion crosstab()
benötigt zwei Argumente: die SQL-Abfrage, die die aggregierten Daten bereitstellt (in diesem Fall aus Gründen der Übersichtlichkeit verschachtelt), und eine Abfrage, die die Kategorien für die Pivot-Tabellenspalten definiert (hier die Anzahl der Schlafzimmer darstellend: 0, 1, 2 und 3). Dem resultierenden Tabellenalias ct
werden entsprechende Spaltennamen zugewiesen.
Schritt 3: Interpretation der Ergebnisse
Die Ausgabe-Pivot-Tabelle sieht folgendermaßen aus:
<code>neighborhood | 0 | 1 | 2 | 3 ----------------+---------+---------+---------+--------- downtown | 189000 | 325000 | NULL | 450000 riverview | 250000 | 300000 | 350000 | NULL</code>
Jede Zeile repräsentiert eine Nachbarschaft und jede Spalte repräsentiert die Anzahl der Schlafzimmer. Die Werte stellen den Durchschnittspreis für die jeweilige Kombination aus Nachbarschaft und Schlafzimmer dar. NULL
gibt an, dass für diese bestimmte Kombination keine Einträge gefunden wurden. Dies bietet eine klare und prägnante Zusammenfassung der durchschnittlichen Immobilienpreise. Denken Sie daran, die Schlafzimmerkategorien in der Funktion unnest
anzupassen, wenn Ihre Daten einen anderen Bereich der Schlafzimmeranzahl umfassen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Pivot-Tabelle in PostgreSQL, um die durchschnittlichen Immobilienpreise nach Stadtteil und Anzahl der Schlafzimmer zusammenzufassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!