Menjana Data Agregat Dipisahkan Koma dalam SQL dengan GROUP BY
Panduan ini menerangkan cara mengagregat data dalam SQL dengan cekap, mengeluarkan hasil sebagai senarai dipisahkan koma yang dikumpulkan mengikut lajur tertentu. Ini ialah tugas SQL biasa dengan beberapa penyelesaian.
Cabarannya
Bayangkan jadual berstruktur seperti ini:
ID | Value |
---|---|
1 | a |
1 | b |
2 | c |
Matlamatnya adalah untuk menyatukan data ini, mengumpulkan mengikut lajur ID
dan menggabungkan entri Value
yang sepadan ke dalam rentetan dipisahkan koma tunggal untuk setiap kumpulan.
Penyelesaian: Memanfaatkan UNTUK LALUAN XML
Kaedah yang kuat dan ringkas menggunakan binaan FOR XML PATH
:
<code class="language-sql">SELECT ID, STUFF((SELECT ', ' + Value FROM YourTable t2 WHERE t1.ID = t2.ID FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 2, '') AS Values FROM YourTable t1 GROUP BY ID;</code>
Pertanyaan ini menggunakan subkueri dengan FOR XML PATH('')
untuk menjana perwakilan XML bagi nilai yang digabungkan. Kaedah .value('.', 'NVARCHAR(MAX)')
mengekstrak ini sebagai rentetan. Akhir sekali, STUFF
mengalih keluar koma dan ruang di hadapan.
Penerokaan Selanjutnya
Untuk senario yang lebih maju dan pendekatan alternatif, terokai sumber berkaitan ini:
Dengan menggunakan kaedah FOR XML PATH
atau meneroka teknik SQL yang lain, anda boleh mengagregat dan mempersembahkan data anda dengan berkesan dalam format yang mesra pengguna, dipisahkan koma.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Keputusan SQL Agregat Dipisahkan Koma Menggunakan GROUP BY?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!