Pengenalan
Data selalunya datang dalam pelbagai format, dan有时候, adalah perlu untuk menukarnya dari satu format ke format yang lain. Satu penukaran biasa ialah daripada format sempit/tinggi kepada format lebar, dengan berbilang lajur dalam jadual sempit menjadi berbilang baris dalam jadual lebar. Artikel ini meneroka cara untuk mencapai penukaran ini dalam MySQL.
Mencipta Struktur Jadual Lebar
Untuk mencipta jadual format lebar, mula-mula kenal pasti semua kunci unik dari sempit meja. Ini boleh dicapai menggunakan pertanyaan berikut:
select distinct key from table;
Hasil pertanyaan ini akan memberikan senarai semua kunci unik dalam jadual sempit. Kekunci ini akan menjadi nama lajur untuk jadual format lebar. Sebagai contoh, jika kunci yang berbeza ialah ['Presiden', 'Mata Wang'], jadual format lebar akan mempunyai struktur berikut:
country, President, Currency
Mengisi Data Jadual Lebar
Untuk mengisi nilai bagi jadual format lebar, gunakan pernyataan SELECT dengan fungsi agregat seperti MAX() atau GROUP_CONCAT():
SELECT country, MAX( IF( key='President', value, NULL ) ) AS President, MAX( IF( key='Currency', value, NULL ) ) AS Currency FROM table GROUP BY country;
Dalam contoh ini, fungsi agregat MAX() digunakan untuk mendapatkan nilai maksimum bagi setiap kunci dalam setiap negara. Pertanyaan ini akan menghasilkan keputusan berikut:
country, President, Currency US, Obama, Dollar China, Hu, Yuan
Pendekatan Alternatif: Cross-Tab atau Jadual Pangsi
Pendekatan alternatif untuk mencipta jadual format lebar adalah dengan menggunakan tab silang atau jadual pangsi. Ini boleh dicapai menggunakan alatan seperti pengendali PIVOT MySQL, yang membolehkan anda menentukan lajur dan fungsi agregat yang anda mahu gunakan.
Kesimpulan
Membentuk semula data daripada sempit kepada format lebar boleh dicapai dengan mudah dalam MySQL menggunakan fungsi agregat SQL atau jadual tab silang/pangsi. Penukaran ini amat berguna apabila menggunakan alat visualisasi data seperti carta dan graf.
Atas ialah kandungan terperinci Bagaimana untuk Membentuk Semula Data MySQL daripada Format Sempit ke Luas Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!