Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menukar Baris ke Lajur dengan Cekap dalam MySQL?

Bagaimanakah Saya Boleh Menukar Baris ke Lajur dengan Cekap dalam MySQL?

Linda Hamilton
Lepaskan: 2025-01-25 11:37:11
asal
780 orang telah melayarinya

How Can I Efficiently Convert Rows to Columns in MySQL?

MySQL Row Transition Conversion Penjelasan Terperinci

Di MySQL, baris dalam jadual ditukar menjadi lajur, dan langkah -langkah diperlukan.

Langkah 1: Tentukan nilai x dan y

Pertama, tentukan lajur x -value (lajur) dan nilai y (garis) jadual perspektif. Dalam contoh ini, Hostid akan digunakan sebagai nilai, dan nama item akan digunakan sebagai nilai x.

Langkah 2: Tambah tambahan

Tambahkan lajur baru ke setiap nilai x, yang mengandungi nilai yang sepadan. Sebagai contoh, untuk x -value A, B, dan C, tambah lajur A, B, dan C menggunakan pernyataan kes, seperti yang ditunjukkan di bawah:

Langkah 3: Pengumpulan dan Agregasi

<code class="language-sql">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;</code>
Salin selepas log masuk
Jadual lanjutan dibayar oleh lajur nilai y (dalam contoh ini), dan lajur baru diagregatkan menggunakan fungsi pempolimeran (seperti jumlah).

Langkah 4: Mencantikkan (Pilihan)

Jika perlu, anda boleh menggunakan nilai neutral (seperti 0) untuk menggantikan sebarang nilai null untuk menjadikan jadual lebih mudah dibaca:
<code class="language-sql">SELECT
  hostid,
  SUM(A) AS A,
  SUM(B) AS B,
  SUM(C) AS C
FROM history_extended
GROUP BY hostid;</code>
Salin selepas log masuk

Langkah berjaga -jaga lain

Nilai yang digunakan dalam lajur tambahan boleh diselaraskan mengikut keperluan tertentu.
<code class="language-sql">SELECT
  hostid,
  COALESCE(A, 0) AS A,
  COALESCE(B, 0) AS B,
  COALESCE(C, 0) AS C
FROM history_itemvalue_pivot;</code>
Salin selepas log masuk

Fungsi pempolimeran yang digunakan mungkin berbeza dari hasilnya (seperti kiraan, max). Dengan membuat spekulasi pelbagai lajur dalam kumpulan dengan klausa, pelbagai lajur boleh digunakan sebagai nilai y.

    Walaupun penyelesaian ini baik untuk bilangan jadual perspektif yang terhad, ia akan menjadi sangat rumit untuk jadual dengan sejumlah besar lajur.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Baris ke Lajur dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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