」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在SQL中基於GROUP BY連線列?

如何在SQL中基於GROUP BY連線列?

發佈於2025-01-21
瀏覽:118

How to Concatenate Columns Based on GROUP BY in SQL?

SQL中的GROUP BY語句下的列連接

在SQL中,根據GROUP BY語句組合或連接列的常用方法是結合使用聚合函數和字串操作符。讓我們來探討如何實現這一點。

考慮以下範例表:

]你你
ID用戶活動IDURL
1act1ab
2act1cd
3cd3
act2xy4
act2

st

為了將每個使用者和活動群組的PageURL值以逗號分隔連接起來,我們可以使用以下查詢:

  • SELECT [用戶], 活動, STUFF((SELECT ',' 頁面URL FROM 表名稱WHERE [用戶] = a.[用戶] AND 活動= a.活動FOR XML PATH ('')) , 1, 1, '') AS URL清單FROM 表名稱AS a GROUP BY [用戶], 活動
  • 查詢分解:
  • SELECT [使用者], 活動, URL清單:
  • 選擇要顯示的「使用者」、「活動」和「URL清單」欄位。
  • STUFF:
  • 將PageURL值連接成單一字串。
  • (SELECT ',' 頁面URL ...):
  • 子查詢,用於提取每個群組的PageURL值,並用逗號作為分隔符號將它們連接起來。
  • FOR XML PATH (''):
  • 將子查詢的結果轉換為XML字串。
  • STUFF(... , 1, 1, ''):
刪除XML字串開頭的逗號,只留下連接後的值。

GROUP BY [用戶], 活動: 依「用戶」和「活動」分組結果,以便對每個唯一組合執行連線。 產生的表格將具有所需佈局:用戶活動我你
URL列表
act1ab, cd
act2

xy, st

How to Concatenate Columns Based on GROUP BY in SQL?

這種方法利用了聚合函數和字串操作的強大功能,可以有效地根據GROUP BY操作連接列值,使其成為各種資料操作任務的靈活解決方案。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3