Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menggabungkan GROUP_CONCAT dan CONCAT untuk Pengagregatan Data Kompleks dalam MySQL?

Bagaimana untuk Menggabungkan GROUP_CONCAT dan CONCAT untuk Pengagregatan Data Kompleks dalam MySQL?

DDD
Lepaskan: 2024-12-17 21:11:11
asal
861 orang telah melayarinya

How to Combine GROUP_CONCAT and CONCAT for Complex Data Aggregation in MySQL?

Cara Menggunakan GROUP_CONCAT dalam CONCAT dalam MySQL

Dalam senario tertentu, anda mungkin menghadapi keperluan untuk mengubah data yang disimpan dalam jadual MySQL ke dalam format tertentu. Sebagai contoh, katakan anda mempunyai jadual dengan data seperti ini:

id Name Value
1 A 4
1 A 5
1 B 8
2 C 9

Matlamat anda adalah untuk mendapatkan hasil berikut:

id Column
1 A:4,5,B:8
2 C:9

Untuk mencapai transformasi ini, anda perlu gunakan fungsi GROUP_CONCAT(). Fungsi ini menonjol dalam keupayaannya untuk menggabungkan nilai daripada berbilang baris, dikumpulkan mengikut kriteria tertentu.

Untuk bermula, anda perlu menjana subkueri yang menggabungkan nilai yang dikumpulkan mengikut kedua-dua id dan Nama. Coretan kod berikut menunjukkan langkah ini:

select id, 
concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
from mytbl group by id, Name
Salin selepas log masuk

Subkueri yang terhasil akan mencipta lajur baharu bernama Nama yang merangkumi semua nilai yang digabungkan dengan titik bertindih dan koma, dikumpulkan mengikut kedua-dua id dan Nama.

| id | Name |
| --- | ---- |
| 1 | A:4,5 |
| 1 | B:8 |
| 2 | C:9 |
Salin selepas log masuk

Akhir sekali, gunakan GROUP_CONCAT() sekali lagi pada pertanyaan paling luar, kali ini menggunakan id sebagai kriteria pengelompokan. Langkah ini akan menggabungkan nilai Nama daripada subkueri, dipisahkan dengan koma:

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select id, 
  concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
   from mytbl group by id, Name
) tbl
group by id;
Salin selepas log masuk

Hasilnya akan sama seperti yang dikehendaki:

| id | Column |
| --- | ----- |
| 1 | A:4,5,B:8 |
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan GROUP_CONCAT dan CONCAT untuk Pengagregatan Data Kompleks dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan