Mengagregatkan URL Halaman untuk Aktiviti Pengguna Menggunakan SQL GROUP BY
Tugas pangkalan data selalunya melibatkan penggabungan data yang dikaitkan dengan lajur berkumpulan. Bayangkan jadual dengan ID pengguna, nama pengguna, jenis aktiviti dan URL halaman. Untuk meringkaskan ini, anda mungkin perlu mengumpulkan mengikut pengguna dan aktiviti, kemudian menyenaraikan semua URL halaman yang berkaitan.
KlausaSQL GROUP BY
menangani perkara ini dengan cekap. Pertanyaan di bawah menggabungkan nilai PageURL
untuk setiap gabungan aktiviti pengguna yang unik:
<code class="language-sql">SELECT [User], Activity, STRING_AGG(PageURL, ',') AS URLList FROM TableName GROUP BY [User], Activity;</code>
Penjelasan:
GROUP BY [User], Activity
: Ini mengumpulkan baris mengikut pengguna dan aktiviti, mewujudkan gandingan aktiviti pengguna yang berbeza.STRING_AGG(PageURL, ',')
: Fungsi ini menggabungkan semua nilai PageURL
dalam setiap kumpulan, mengasingkannya dengan koma. Ini adalah alternatif yang lebih cekap dan boleh dibaca kepada kaedah STUFF
dan FOR XML
. Ambil perhatian bahawa STRING_AGG
ialah fungsi SQL standard, tetapi ketersediaannya mungkin bergantung pada sistem pangkalan data khusus anda (cth., ia disokong dalam SQL Server, PostgreSQL, dll., tetapi bukan dalam versi MySQL yang lebih lama). Untuk pangkalan data yang tidak mempunyai STRING_AGG
, kaedah alternatif seperti GROUP_CONCAT
(MySQL) atau fungsi tersuai mungkin diperlukan.Jadual yang terhasil memaparkan User
, Activity
dan URLList
, dengan URLList
menunjukkan senarai URL yang dipisahkan koma untuk setiap kumpulan. Pendekatan ini menyediakan penyelesaian yang lebih bersih dan selalunya lebih berprestasi berbanding dengan menggunakan STUFF
dan FOR XML
.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan URL Halaman untuk Aktiviti Pengguna Berkumpulan dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!