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
Lepaskan: 2025-01-14 06:01:44
asal
478 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan