Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pivot Baris ke Lajur dalam DB2 Menggunakan GROUP BY?

Bagaimana untuk Pivot Baris ke Lajur dalam DB2 Menggunakan GROUP BY?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 10:32:41757semak imbas

How to Pivot Rows into Columns in DB2 Using GROUP BY?

Memusing dalam DB2

Soalan ini berkisar tentang menukar baris menjadi lajur dalam jadual DB2. Data yang disediakan distrukturkan dengan lajur ItemID, Item dan Nilai. Objektifnya adalah untuk menukar data ini kepada format yang diubah, di mana nilai untuk Meeting, Advise dan NoAdvise disusun sebagai lajur, dengan ItemID berfungsi sebagai pengecam baris.

Satu pendekatan untuk melaksanakan pangsi ini adalah dengan gunakan klausa GROUP BY bersama-sama dengan berbilang MAX() ungkapan. Dengan menggunakan MAX() dan menentukan kriteria untuk setiap jenis Item dalam pernyataan CASE, nilai yang sepadan boleh diambil semula. Contohnya:

SELECT 
  ItemID,
  MAX(CASE WHEN Item = 'Meeting'  THEN Value END) AS Meeting,
  MAX(CASE WHEN Item = 'Advise'   THEN Value END) AS Advise,
  MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM table_name
GROUP BY ItemID

Pertanyaan ini menjana format transposed yang dikehendaki, dengan ItemID berfungsi sebagai kunci utama dan Meeting, Advise dan NoAdvise menjadi pengepala lajur. Klausa GROUP BY memastikan bahawa data dikumpulkan mengikut ItemID, menyediakan baris yang berbeza untuk setiap item.

Sebagai alternatif, hasil yang sama boleh dicapai dengan menggunakan berbilang subquery berkorelasi seperti yang dicadangkan oleh jawapan yang diterima sekarang dalam forum ini . Walau bagaimanapun, perlu diperhatikan bahawa pendekatan subkueri mungkin menghadapi isu prestasi berbanding penyelesaian KUMPULAN OLEH YANG lebih cekap, terutamanya dengan set data yang lebih besar.

Atas ialah kandungan terperinci Bagaimana untuk Pivot Baris ke Lajur dalam DB2 Menggunakan GROUP BY?. 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