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

Bagaimana untuk Mencipta Jadual Pangsi Menunjukkan Purata Harga Rumah mengikut Kiraan Kejiranan dan Bilik Tidur dalam PostgreSQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-13 09:53:43976semak imbas

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

Membuat Jadual Pangsi dalam PostgreSQL untuk Menunjukkan Purata Harga Rumah

Masalah: Bagaimanakah kita boleh menjana jadual ringkasan yang menunjukkan purata harga rumah, dipecahkan mengikut kejiranan dan bilangan bilik tidur?

Penyelesaian: Ini melibatkan proses dua langkah menggunakan fungsi crosstab PostgreSQL (daripada sambungan tablefunc).

  1. Kira Harga Purata mengikut Kiraan Kejiranan dan Bilik Tidur: Mula-mula, kami menentukan harga purata bagi setiap gabungan kiraan kejiranan dan bilik tidur.
<code class="language-sql">SELECT neighborhood, bedrooms, AVG(price) AS average_price
FROM listings
GROUP BY neighborhood, bedrooms
ORDER BY neighborhood, bedrooms;</code>
  1. Gunakan Fungsi crosstab: Seterusnya, kami masukkan hasil daripada langkah 1 ke dalam fungsi crosstab. Fungsi ini mengubah data menjadi jadual pangsi. Argumen kedua menentukan kiraan bilik tidur yang kita inginkan sebagai lajur. Ambil perhatian bahawa anda perlu memasang sambungan tablefunc jika anda belum melakukannya (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>

Pertanyaan ini menghasilkan jadual pangsi dengan kejiranan sebagai baris dan harga purata untuk 0, 1, 2 dan 3 bilik tidur sebagai lajur. Ingat untuk melaraskan tatasusunan '{0,1,2,3}' untuk mencerminkan kiraan bilik tidur sebenar yang terdapat dalam jadual listings anda. Pelakon ::int memastikan harga purata dianggap sebagai integer; anda mungkin perlu melaraskan ini berdasarkan price jenis data lajur anda.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Jadual Pangsi Menunjukkan Purata Harga Rumah mengikut Kiraan Kejiranan dan Bilik Tidur dalam PostgreSQL?. 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