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?
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
:
<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!