Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggabungkan URL Halaman menjadi Rentetan Dipisahkan Koma Tunggal Berdasarkan Pengguna dan Aktiviti Menggunakan SQL GROUP BY?

Bagaimanakah Saya Boleh Menggabungkan URL Halaman menjadi Rentetan Dipisahkan Koma Tunggal Berdasarkan Pengguna dan Aktiviti Menggunakan SQL GROUP BY?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-14 06:01:44529semak imbas

How Can I Combine Page URLs into a Single Comma-Separated String Based on User and Activity Using SQL's GROUP BY?

Mengagregatkan URL Halaman dengan SQL GROUP BY

Jadual pangkalan data anda termasuk lajur User, Activity dan PageURL. Matlamatnya adalah untuk menyatukan entri PageURL untuk setiap gabungan User dan Activity unik ke dalam rentetan dipisahkan koma tunggal.

Ini boleh dicapai menggunakan GROUP BY bersama-sama dengan teknik pengagregatan rentetan. Begini caranya:

<code class="language-sql">SELECT
    User,
    Activity,
    STRING_AGG(PageURL, ',') AS CombinedPageURLs
FROM
    TableName
GROUP BY
    User,
    Activity;</code>

Pertanyaan ini secara langsung menggunakan fungsi STRING_AGG (tersedia dalam banyak dialek SQL moden seperti PostgreSQL, SQL Server 2017 dan lebih baru, dsb.) untuk menggabungkan nilai PageURL dalam setiap kumpulan yang ditakrifkan oleh User dan Activity. Rentetan dipisahkan koma yang terhasil ditetapkan pada lajur CombinedPageURLs.

Alternatif untuk Dialek SQL Tanpa STRING_AGG:

Jika pangkalan data SQL anda tidak menyokong STRING_AGG, anda boleh menggunakan pendekatan yang sama menggunakan FOR XML PATH:

<code class="language-sql">SELECT
    User,
    Activity,
    STUFF((
        SELECT ',' + PageURL
        FROM TableName t2
        WHERE t2.User = t1.User AND t2.Activity = t1.Activity
        FOR XML PATH('')
    ), 1, 1, '') AS CombinedPageURLs
FROM
    TableName t1
GROUP BY
    User,
    Activity;</code>

Alternatif ini menggunakan subkueri dengan FOR XML PATH('') untuk mencipta rentetan yang dipisahkan koma dan STUFF mengalih keluar koma di hadapan. Kaedah ini serasi dengan versi SQL Server yang lebih lama. Ingat untuk menyesuaikan nama jadual dan lajur agar sepadan dengan skema pangkalan data khusus anda. Output menyediakan lajur CombinedPageURLs yang mengandungi URL agregat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan URL Halaman menjadi Rentetan Dipisahkan Koma Tunggal Berdasarkan Pengguna dan Aktiviti Menggunakan SQL GROUP BY?. 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