Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Pivot Jadual MySQL: Mengubah Baris ke Lajur?

Bagaimana untuk Pivot Jadual MySQL: Mengubah Baris ke Lajur?

Barbara Streisand
Lepaskan: 2025-01-25 11:32:13
asal
498 orang telah melayarinya

How to Pivot a MySQL Table: Transforming Rows into Columns?

Buat semula borang ke dalam format lajur

Cabaran

: Cari data dalam jadual MySQL dalam formula bentuk perspektif, dan tukar baris ke dalam lajur.

Soalan :

diberi jadual yang mengandungi hostid, itemName, dan lajur item, sila tekan hasil seperti yang ditunjukkan di bawah:

penyelesaian

:

hostid A B C
1 10 3 0
2 9 0 40
Langkah 1: Pilih lajur yang berminat

OK akan menyediakan lajur yang akan memberikan nilai y dan nilai x (itemName).

Langkah 2: Lanjutkan Jadual Asas

Buat lajur tambahan untuk setiap nilai x unik.

Langkah 3: Pengumpulan dan Agregasi

GroupID (HostID) dan mengagregatkan jadual lanjutan.

<code class="language-sql">CREATE VIEW history_extended AS
SELECT
    history.*,
    CASE WHEN itemname = "A" THEN itemvalue END AS A,
    CASE WHEN itemname = "B" THEN itemvalue END AS B,
    CASE WHEN itemname = "C" THEN itemvalue END AS C
FROM history;</code>
Salin selepas log masuk
Langkah 4: Mencantikkan (Pilihan)

Gantikan nilai null ke sifar untuk mendapatkan penampilan yang lebih jelas.

Langkah berjaga -jaga dan sekatan
<code class="language-sql">CREATE VIEW history_itemvalue_pivot AS
SELECT
    hostid,
    SUM(A) AS A,
    SUM(B) AS B,
    SUM(C) AS C
FROM history_extended
GROUP BY hostid;</code>
Salin selepas log masuk
:

Nilai yang digunakan dalam lajur lanjutan dan nilai lalai nilai yang hilang boleh disesuaikan.

anda boleh menyesuaikan fungsi pempolimeran (contohnya, max).

<code class="language-sql">CREATE VIEW history_itemvalue_pivot_pretty AS
SELECT 
    hostid, 
    COALESCE(A, 0) AS A, 
    COALESCE(B, 0) AS B, 
    COALESCE(C, 0) AS C 
FROM history_itemvalue_pivot;</code>
Salin selepas log masuk
Jika anda menggunakan pelbagai lajur sebagai nilai y atau sebilangan besar lajur perspektif diperlukan, penyelesaian ini tidak boleh digunakan.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Jadual MySQL: Mengubah Baris ke Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan