Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyahpaut dan Mengubah Data dalam MySQL untuk Mengubah Lajur menjadi Baris?

Bagaimana untuk Menyahpaut dan Mengubah Data dalam MySQL untuk Mengubah Lajur menjadi Baris?

DDD
Lepaskan: 2025-01-09 15:07:41
asal
1013 orang telah melayarinya

How to Unpivot and Pivot Data in MySQL to Transform Columns into Rows?

Pivot dan pivot data MySQL: tukar lajur kepada baris

Andaikan anda mempunyai jadual dengan berbilang lajur (col1, col2, col3, dll.) dan ingin menukarnya kepada format jadual pangsi, mempersembahkan data dalam unit baris dan bukannya lajur.

Untuk mencapai ini dalam MySQL, mula-mula gunakan pertanyaan UNION ALL untuk memutar data. Proses ini mencipta berbilang baris daripada nilai lajur asal:

SELECT id, month, col1 AS value, 'col1' AS descrip
FROM yourtable
UNION ALL
SELECT id, month, col2 AS value, 'col2' AS descrip
FROM yourtable
UNION ALL
SELECT id, month, col3 AS value, 'col3' AS descrip
FROM yourtable
UNION ALL
SELECT id, month, col4 AS value, 'col4' AS descrip
FROM yourtable;
Salin selepas log masuk

UNION ALL Hasil pertanyaan:

IDMONTHVALUEDESCRIP
101JanAcol1
102febCcol1
101JanBcol2
102febAcol2
101Jan(null)col3
102febGcol3
101JanBcol4
102febEcol4

Seterusnya, bungkus pertanyaan UNION ALL dalam subkueri untuk memutar data. Gunakan penyataan fungsi agregat GROUP BY dan CASE untuk menukar struktur perspektif tidak berpivot kepada format perspektif yang diingini:

SELECT descrip,
MAX(CASE WHEN month = 'jan' THEN value ELSE 0 END) AS jan,
MAX(CASE WHEN month = 'feb' THEN value ELSE 0 END) AS feb
FROM (
    SELECT id, month, col1 AS value, 'col1' AS descrip
    FROM yourtable
    UNION ALL
    SELECT id, month, col2 AS value, 'col2' AS descrip
    FROM yourtable
    UNION ALL
    SELECT id, month, col3 AS value, 'col3' AS descrip
    FROM yourtable
    UNION ALL
    SELECT id, month, col4 AS value, 'col4' AS descrip
    FROM yourtable
) AS src
GROUP BY descrip;
Salin selepas log masuk

Hasil pertanyaan pangsi:

DESCRIP JAN FEB
col1 A C
col2 B A
col3 0 G
col4 B E

Proses ini menukar struktur jadual daripada lajur kepada baris dengan berkesan, membolehkan anda mempersembahkan data anda dengan cara yang lebih ringkas dan jelas.

Atas ialah kandungan terperinci Bagaimana untuk Menyahpaut dan Mengubah Data dalam MySQL untuk Mengubah Lajur menjadi Baris?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan