Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membentuk Semula Data dengan Cekap dari Format Panjang ke Lebar dalam MySQL?

Bagaimana untuk Membentuk Semula Data dengan Cekap dari Format Panjang ke Lebar dalam MySQL?

DDD
DDDasal
2024-12-29 01:40:10584semak imbas

How to Efficiently Reshape Data from Long to Wide Format in MySQL?

Membentuk Semula Data daripada Format Panjang ke Lebar dalam MySQL

Pengenalan:

Membentuk semula data daripada format panjang (tinggi) kepada format yang luas boleh menjadi satu keperluan apabila memanipulasi data. MySQL menyediakan ciri yang membolehkan anda melaksanakan operasi ini tanpa bergantung pada bahasa skrip luaran.

Mencipta Jadual Format Lebar:

  1. Langkah pertama adalah untuk mendapatkan senarai semua kunci berbeza yang terdapat dalam format panjang jadual:

    SELECT DISTINCT key FROM table;
  2. Gunakan kekunci yang diperoleh untuk mencipta jadual baharu dengan struktur format lebar yang dikehendaki:

    CREATE TABLE wide_table (
        country VARCHAR(255),
        key1 VARCHAR(255),
        key2 VARCHAR(255),
        ...,
        keyN VARCHAR(255)
    );

Mengisi Nilai Jadual:

  1. Akhir sekali, masukkan data ke dalam jadual format lebar menggunakan pertanyaan tab silang:

    INSERT INTO wide_table (
        country,
        key1,
        key2,
        ...,
        keyN
    )
    SELECT
        country,
        MAX(IF(key = 'key1', value, NULL)) AS key1,
        MAX(IF(key = 'key2', value, NULL)) AS key2,
        ...,
        MAX(IF(key = 'keyN', value, NULL)) AS keyN
    FROM table
    GROUP BY country;

Contoh:

Pertimbangkan jadual input format panjang:

country attrName attrValue key
US President Obama 2
US Currency Dollar 3
China President Hu 4
China Currency Yuan 5

Menggunakan langkah di atas, kami boleh membentuk semula data menjadi luas format:

Output Format Luas:

country President Currency
US Obama Dollar
China Hu Yuan

Faedah Menggunakan SQL:

  • Kecekapan: Pertanyaan SQL dioptimumkan untuk operasi pangkalan data, meminimumkan pemprosesan masa.
  • Deklaratif: SQL membolehkan anda menyatakan transformasi yang diingini dalam cara yang ringkas dan boleh dibaca.
  • Kemudahalihan: Pertanyaan SQL boleh dilaksanakan merentas pangkalan data MySQL yang berbeza, memastikan keserasian tanpa pengubahsuaian.
  • Kebolehselenggaraan: Setelah pertanyaan SQL dibangunkan, ia boleh diselenggara dan diubah dengan mudah mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Membentuk Semula Data dengan Cekap dari Format Panjang ke Lebar dalam MySQL?. 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