Heim >Datenbank >MySQL-Tutorial >Wie kann ich Seiten-URLs mithilfe von SQLs GROUP BY zu einer einzigen durch Kommas getrennten Zeichenfolge basierend auf Benutzer und Aktivität kombinieren?

Wie kann ich Seiten-URLs mithilfe von SQLs GROUP BY zu einer einzigen durch Kommas getrennten Zeichenfolge basierend auf Benutzer und Aktivität kombinieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-14 06:01:44514Durchsuche

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

Aggregieren von Seiten-URLs mit SQLs GROUP BY

Ihre Datenbanktabelle enthält die Spalten User, Activity und PageURL. Das Ziel besteht darin, PageURL-Einträge für jede eindeutige User- und Activity-Kombination in einer einzigen durch Kommas getrennten Zeichenfolge zusammenzufassen.

Dies kann durch GROUP BY in Verbindung mit String-Aggregation-Techniken erreicht werden. So geht's:

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

Diese Abfrage verwendet direkt die Funktion STRING_AGG (verfügbar in vielen modernen SQL-Dialekten wie PostgreSQL, SQL Server 2017 und höher usw.), um PageURL-Werte innerhalb jeder durch User und Activity definierten Gruppe zu verketten. Die resultierende durch Kommas getrennte Zeichenfolge wird der Spalte CombinedPageURLs zugewiesen.

Alternative für SQL-Dialekte ohne STRING_AGG:

Wenn Ihre SQL-Datenbank STRING_AGG nicht unterstützt, können Sie einen ähnlichen Ansatz verwenden, indem Sie FOR XML PATH:

verwenden
<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>

Diese Alternative verwendet eine Unterabfrage mit FOR XML PATH(''), um die durch Kommas getrennte Zeichenfolge zu erstellen, und STUFF entfernt das führende Komma. Diese Methode ist mit älteren SQL Server-Versionen kompatibel. Denken Sie daran, Tabellen- und Spaltennamen an Ihr spezifisches Datenbankschema anzupassen. Die Ausgabe stellt eine Spalte CombinedPageURLs bereit, die die aggregierten URLs enthält.

Das obige ist der detaillierte Inhalt vonWie kann ich Seiten-URLs mithilfe von SQLs GROUP BY zu einer einzigen durch Kommas getrennten Zeichenfolge basierend auf Benutzer und Aktivität kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn