使用 SQL 的 GROUP BY 聚合使用者活動的頁面 URL
資料庫任務經常涉及組合與分組列關聯的資料。想像一個包含使用者 ID、使用者名稱、活動類型和頁面 URL 的表。 總而言之,您可能需要按使用者和活動進行分組,然後列出所有關聯的頁面 URL。
SQL 的 GROUP BY
子句有效地處理了這個問題。下面的查詢連接每個唯一的使用者活動組合的 PageURL
值:
<code class="language-sql">SELECT [User], Activity, STRING_AGG(PageURL, ',') AS URLList FROM TableName GROUP BY [User], Activity;</code>
說明:
GROUP BY [User], Activity
: 這會依照使用者和活動對行分組,建立不同的使用者活動配對。 STRING_AGG(PageURL, ',')
: 此函數連接每個組內的所有 PageURL
值,並用逗號分隔它們。 這是 STUFF
和 FOR XML
方法的更有效和可讀的替代方法。 請注意,STRING_AGG
是標準 SQL 函數,但其可用性可能取決於您的特定資料庫系統(例如,SQL Server、PostgreSQL 等支援它,但舊版的 MySQL 不支援)。 對於缺少 STRING_AGG
的資料庫,可能需要 GROUP_CONCAT
(MySQL) 或自訂函數等替代方法。 結果表顯示 User
、Activity
和 URLList
,其中 URLList
顯示每個群組的以逗號分隔的 URL 清單。 與使用 STUFF
和 FOR XML
相比,此方法提供了更乾淨且性能更高的解決方案。
以上是如何在 SQL 中連接分組使用者活動的頁面 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!