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
571 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.

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;
Salin selepas log masuk
<骤> Langkah 4: Mencantikkan (Pilihan)

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

<事> Langkah berjaga -jaga dan sekatan
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;
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).

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;
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!

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