Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Transformasi Baris ke Lajur (Pivot) dalam MySQL dengan Data Dinamik?

Bagaimana untuk Melakukan Transformasi Baris ke Lajur (Pivot) dalam MySQL dengan Data Dinamik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 11:51:10868semak imbas

How to Perform Row to Column Transformation (Pivot) in MySQL with Dynamic Data?

Transformasi Baris ke Lajur dalam MySQL: Jadual Pangsi untuk Data Dinamik

Jadual pangsi ialah cara mudah untuk mengubah data daripada berorientasikan baris format kepada format berorientasikan lajur, membolehkan analisis dan pelaporan yang lebih mudah. Dalam MySQL, transformasi ini boleh dicapai melalui teknik khusus.

Pertimbangkan contoh data berikut:

ID Type Email Degignation
1000000000 202 [email protected] Entrepreneur
1000000000 234 [email protected] Engineering,Development
1000000000 239 [email protected] CTO

Untuk memutar data ini, kami menggunakan pertanyaan berikut:

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

Pertanyaan ini menggunakan ungkapan CASE untuk mencipta lajur secara dinamik bagi setiap nilai Jenis yang berbeza. Fungsi MAX digunakan untuk mengagregatkan nilai Degignation bagi setiap gabungan ID dan E-mel.

Perlu ambil perhatian bahawa untuk pertanyaan ini berfungsi dengan berkesan, anda mesti mengetahui semua nilai Jenis yang mungkin terlebih dahulu. MySQL tidak membenarkan penambahan lajur yang dinamik berdasarkan data yang ditemui pada masa jalan; takrifan lajur mestilah statik semasa penyediaan pertanyaan.

Teknik ini membolehkan anda mengubah data berorientasikan baris kepada format berorientasikan lajur, memudahkan analisis dan tugasan pelaporan dengan menyediakan persembahan data yang lebih intuitif.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Transformasi Baris ke Lajur (Pivot) dalam MySQL dengan Data Dinamik?. 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