Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Lajur Berdasarkan GROUP BY dalam SQL?

Bagaimana untuk Menggabungkan Lajur Berdasarkan GROUP BY dalam SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-14 08:14:43721semak imbas

How to Concatenate Columns Based on GROUP BY in SQL?

Sambungan lajur di bawah penyata GROUP BY dalam SQL

Dalam SQL, cara biasa untuk menggabungkan atau menyertai lajur berdasarkan pernyataan GROUP BY ialah menggunakan fungsi agregat bersama-sama dengan pengendali rentetan. Mari kita terokai bagaimana untuk mencapai ini.

Pertimbangkan contoh jadual berikut:

ID 用户 活动 页面URL
1 act1 ab
2 act1 cd
3 act2 xy
4 act2 st

Untuk menggabungkan nilai PageURL ​​untuk setiap pengguna dan kumpulan aktiviti yang dipisahkan dengan koma, kami boleh menggunakan pertanyaan berikut:

PILIH [pengguna], aktiviti, STUFF((PILIH ',' URL halaman DARI nama jadual DI MANA [pengguna] = a. [pengguna] DAN aktiviti = a. aktiviti UNTUK LALUAN XML ('')) , 1, 1, '') SEBAGAI senarai URL DARIPADA nama jadual SEBAGAI KUMPULAN OLEH [pengguna], aktiviti

Pecahan pertanyaan:

  • PILIH [Pengguna], Aktiviti, Senarai URL: Pilih lajur Pengguna, Aktiviti dan Senarai URL untuk dipaparkan.
  • BAHAN: Menggabungkan nilai PageURL ​​ke dalam satu rentetan.
  • (PILIH ',' URL Halaman ...): Subquery untuk mengekstrak nilai PageURL setiap kumpulan dan menggabungkannya dengan koma sebagai pemisah.
  • UNTUK LALUAN XML (''): Menukar hasil subkueri kepada rentetan XML.
  • STUFF(... , 1, 1, ''): Mengalih keluar koma pada permulaan rentetan XML, hanya meninggalkan nilai yang digabungkan.
  • KUMPULAN OLEH [USER], AKTIVITI: Himpunkan hasil mengikut "Pengguna" dan "Aktiviti" supaya gabungan dilakukan untuk setiap gabungan unik.

Jadual yang dijana akan mempunyai reka letak yang diingini:

用户 活动 URL列表
act1 ab, cd
act2 xy, st

Pendekatan ini memanfaatkan kuasa fungsi agregat dan operasi rentetan untuk menggabungkan nilai lajur secara berkesan berdasarkan operasi GROUP BY, menjadikannya penyelesaian yang fleksibel untuk pelbagai tugas manipulasi data.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Lajur Berdasarkan GROUP BY dalam 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