Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich in PostgreSQL eine Pivot-Tabelle mit den durchschnittlichen Hauspreisen nach Nachbarschaft und Schlafzimmeranzahl?

Wie erstelle ich in PostgreSQL eine Pivot-Tabelle mit den durchschnittlichen Hauspreisen nach Nachbarschaft und Schlafzimmeranzahl?

Mary-Kate Olsen
Freigeben: 2025-01-13 09:53:43
Original
976 Leute haben es durchsucht

How to Create a Pivot Table Showing Average House Prices by Neighborhood and Bedroom Count in PostgreSQL?

Erstellen einer Pivot-Tabelle in PostgreSQL, um durchschnittliche Hauspreise anzuzeigen

Problem: Wie können wir eine Übersichtstabelle mit den durchschnittlichen Hauspreisen, aufgeschlüsselt nach Stadtteil und Anzahl der Schlafzimmer, erstellen?

Lösung: Dies beinhaltet einen zweistufigen Prozess unter Verwendung der crosstab-Funktion von PostgreSQL (aus der tablefunc-Erweiterung).

  1. Durchschnittspreise nach Nachbarschaft und Schlafzimmeranzahl berechnen: Zuerst ermitteln wir den Durchschnittspreis für jede Kombination aus Nachbarschaft und Schlafzimmeranzahl.
<code class="language-sql">SELECT neighborhood, bedrooms, AVG(price) AS average_price
FROM listings
GROUP BY neighborhood, bedrooms
ORDER BY neighborhood, bedrooms;</code>
Nach dem Login kopieren
  1. Verwenden Sie die Funktion crosstab: Als nächstes geben wir die Ergebnisse aus Schritt 1 in die Funktion crosstab ein. Diese Funktion wandelt die Daten in eine Pivot-Tabelle um. Das zweite Argument gibt die Anzahl der Schlafzimmer an, die wir als Spalten haben möchten. Beachten Sie, dass Sie die Erweiterung tablefunc installieren müssen, falls Sie dies noch nicht getan haben (CREATE EXTENSION tablefunc;).
<code class="language-sql">SELECT *
FROM crosstab(
    'SELECT neighborhood, bedrooms, AVG(price)::int AS average_price
     FROM listings
     GROUP BY neighborhood, bedrooms
     ORDER BY neighborhood, bedrooms',
    $$SELECT unnest('{0,1,2,3}'::int[]) AS bedrooms$$
) AS ct ("neighborhood" text, "0" int, "1" int, "2" int, "3" int);</code>
Nach dem Login kopieren

Diese Abfrage erzeugt eine Pivot-Tabelle mit Nachbarschaften als Zeilen und dem Durchschnittspreis für 0, 1, 2 und 3 Schlafzimmer als Spalten. Denken Sie daran, das Array '{0,1,2,3}' so anzupassen, dass es die tatsächliche Anzahl der Schlafzimmer in Ihrer Tabelle listings widerspiegelt. Die ::int-Umwandlung stellt sicher, dass der Durchschnittspreis als Ganzzahl behandelt wird; Möglicherweise müssen Sie dies basierend auf dem Datentyp Ihrer price Spalte anpassen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich in PostgreSQL eine Pivot-Tabelle mit den durchschnittlichen Hauspreisen nach Nachbarschaft und Schlafzimmeranzahl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage