Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Pivot Baris ke Lajur dalam DB2 Menggunakan 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!