Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengubah Data dengan Berbilang Lajur (org dan kedudukan) ke dalam Format Lebih Luas Menggunakan SQL?

Bagaimana untuk Mengubah Data dengan Berbilang Lajur (org dan kedudukan) ke dalam Format Lebih Luas Menggunakan SQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-03 00:53:41622semak imbas

How to Pivot Data with Multiple Columns (org and position) into a Wider Format Using SQL?

Memindahkan Data menggunakan Berbilang Lajur

Pertanyaan pangsi adalah penting untuk menyusun semula data daripada format tinggi dan sempit kepada format lebar dan jadual. Dalam kes khusus ini, anda perlu memaksi data yang diwakili dalam format terpivot dengan dua lajur, iaitu org dan kedudukan, ke dalam format yang lebih luas dengan lajur berasingan untuk setiap bahasa (en, fi dan sv).

Sebagaimana yang anda nyatakan, pertanyaan pangsi dengan arahan CONNECT BY mungkin berguna. Walau bagaimanapun, berikut ialah pendekatan yang lebih mudah menggunakan operator PIVOT:

SELECT  user_id,
        MAX(CASE WHEN lang = 'en' THEN org END) AS org_en,
        MAX(CASE WHEN lang = 'en' THEN position END) AS position_en,
        MAX(CASE WHEN lang = 'fi' THEN org END) AS org_fi,
        MAX(CASE WHEN lang = 'fi' THEN position END) AS position_fi,
        MAX(CASE WHEN lang = 'sv' THEN org END) AS org_sv,
        MAX(CASE WHEN lang = 'sv' THEN position END) AS position_sv
FROM    source
GROUP BY user_id

Fungsi MAX() digunakan untuk mendapatkan nilai terkini yang dikaitkan dengan setiap ID pengguna dan gabungan bahasa. Sebagai alternatif, anda boleh menggunakan fungsi pengagregatan seperti SUM(), bergantung pada keperluan khusus anda.

Pertanyaan ini akan menjana output yang diingini:

user_id org_fi position_fi org_en position_en org_sv position_sv
1001 USD Bossa USE Boss NULL NULL
1002 NULL NULL NULL NULL GWR Dim
1003 GGA DCS NULL NULL GCA DDD

Ingat untuk melaraskan fungsi MAX() dan ungkapan CASE berdasarkan data dan keperluan sebenar anda. Dengan pendekatan ini, anda boleh memutar data anda dengan berkesan menggunakan berbilang lajur, memberikan anda kefleksibelan untuk mewakilinya dalam format yang lebih sesuai dengan keperluan analisis dan pembentangan anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Data dengan Berbilang Lajur (org dan kedudukan) ke dalam Format Lebih Luas Menggunakan SQL?. 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