首頁 > 資料庫 > mysql教程 > 如何在 SQL Server 中使用 STRING_AGG 連線不同的值?

如何在 SQL Server 中使用 STRING_AGG 連線不同的值?

Patricia Arquette
發布: 2025-01-24 07:07:08
原創
871 人瀏覽過

How to Concatenate Distinct Values Using STRING_AGG in SQL Server?

在 SQL Server 中使用 STRING_AGG 進行不同值串聯:一種實用方法

SQL Server 的 STRING_AGG 函數簡化了將多個值連接成單一字串的過程。 但是,使用 STRING_AGG 直接實作不同值串聯需要一種解決方法。本文概述了使用 STRING_AGG 計算和連接不同值的兩步驟過程,即使對於大型資料集也是如此。

解:

此方法使用兩階段 GROUP BY 方法:

  1. 消除重複:第一個 GROUP BY 操作會刪除重複的行,確保只考慮指定列的唯一組合。

    <code class="language-sql">WITH Sitings AS (
     SELECT * FROM (VALUES
         (1, 'Florida', 'Orlando', 'bird'),
         (2, 'Florida', 'Orlando', 'dog'),
         (3, 'Arizona', 'Phoenix', 'bird'),
         (4, 'Arizona', 'Phoenix', 'dog'),
         (5, 'Arizona', 'Phoenix', 'bird'),
         (6, 'Arizona', 'Phoenix', 'bird'),
         (7, 'Arizona', 'Phoenix', 'bird'),
         (8, 'Arizona', 'Flagstaff', 'dog')
     ) F (ID, State, City, Siting)
    )</code>
    登入後複製
  2. 聚合與連接: 第二個 GROUP BY 計算不同計數並使用 STRING_AGG 連接唯一值。

    <code class="language-sql">SELECT
     State,
     City,
     COUNT(1) AS [# Of Sitings],
     STRING_AGG(Siting, ',') AS Animals
    FROM (
     SELECT DISTINCT
         State,
         City,
         Siting
     FROM Sitings
    ) AS CTE_Animals
    GROUP BY
     State,
     City;</code>
    登入後複製

結果輸出:

查詢產生一個總結不同計數和連接值的表:

State City # Of Sitings Animals
Arizona Flagstaff 1 dog
Arizona Phoenix 2 bird,dog
Florida Orlando 2 bird,dog

即使在處理大量資料集時,這種高效的技術也能確保準確的不同值串聯和計數。 這種方法有效地複製了 COUNT(DISTINCT <column>) 的功能,同時也提供了連接字串。

以上是如何在 SQL Server 中使用 STRING_AGG 連線不同的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板