Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Jadual Pangsi dalam PostgreSQL untuk Merumuskan Purata Harga Perumahan mengikut Kejiranan dan Bilangan Bilik Tidur?

Bagaimana untuk Mencipta Jadual Pangsi dalam PostgreSQL untuk Merumuskan Purata Harga Perumahan mengikut Kejiranan dan Bilangan Bilik Tidur?

Linda Hamilton
Linda Hamiltonasal
2025-01-13 06:47:43352semak imbas

How to Create a Pivot Table in PostgreSQL to Summarize Average Housing Prices by Neighborhood and Number of Bedrooms?

Menjana Jadual Pangsi dalam PostgreSQL untuk Menganalisis Harga Perumahan

PostgreSQL menawarkan keupayaan hebat untuk ringkasan data, termasuk penciptaan jadual pangsi. Contoh ini menunjukkan cara menjana jadual pangsi yang menunjukkan purata harga perumahan yang dikumpulkan mengikut kejiranan dan bilangan bilik tidur.

Langkah 1: Kira Harga Purata setiap Kiraan Kejiranan dan Bilik Tidur

Pertama, kami mengira harga purata untuk setiap gabungan unik kiraan kejiranan dan bilik tidur:

<code class="language-sql">SELECT neighborhood, bedrooms, AVG(price) AS avg_price
FROM listings
GROUP BY neighborhood, bedrooms
ORDER BY neighborhood, bedrooms;</code>

Pertanyaan ini mengumpulkan listings data jadual mengikut neighborhood dan bedrooms, mengira purata price untuk setiap kumpulan. Hasilnya kemudian dipesan untuk kejelasan.

Langkah 2: Pivot Data Menggunakan crosstab()

Untuk mengubah data agregat menjadi format jadual pangsi, kami menggunakan fungsi 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>

Fungsi crosstab() mengambil dua hujah: pertanyaan SQL yang menyediakan data agregat (bersarang dalam kes ini untuk kejelasan) dan pertanyaan mentakrifkan kategori untuk lajur jadual pangsi (di sini, mewakili bilangan bilik tidur: 0, 1, 2, dan 3). Alias ​​jadual yang terhasil ct diberikan nama lajur sewajarnya.

Langkah 3: Mentafsir Keputusan

Jadual pangsi output akan menyerupai ini:

<code>neighborhood  | 0       | 1       | 2       | 3
----------------+---------+---------+---------+---------
downtown      | 189000  | 325000  | NULL     | 450000
riverview     | 250000  | 300000  | 350000  | NULL</code>

Setiap baris mewakili kejiranan dan setiap lajur mewakili kiraan bilik tidur. Nilai mewakili harga purata untuk gabungan kejiranan dan bilik tidur tertentu itu. NULL menunjukkan tiada penyenaraian ditemui untuk gabungan tertentu itu. Ini memberikan ringkasan yang jelas dan ringkas tentang harga purata perumahan. Ingat untuk melaraskan kategori bilik tidur dalam fungsi unnest jika data anda termasuk julat bilangan bilik tidur yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Jadual Pangsi dalam PostgreSQL untuk Merumuskan Purata Harga Perumahan mengikut Kejiranan dan Bilangan Bilik Tidur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn