首頁 >資料庫 >mysql教程 >如何使用 SQL 的 GROUP BY 子句將多行資料合併為一行?

如何使用 SQL 的 GROUP BY 子句將多行資料合併為一行?

Linda Hamilton
Linda Hamilton原創
2025-01-15 08:58:44542瀏覽

How Can I Combine Multiple Rows of Data into a Single Row Using SQL's GROUP BY Clause?

使用GROUP BY將多行資料合併成一行

在資料處理過程中,您可能會遇到這樣的表格:每一行代表一個獨特的實體,而某些欄位需要跨這些實體進行整合。當您需要將特定列的多個結果行連接到一行時,就會發生這種情況。

假設有一個名為「ActorsInfo」的表,包含兩列:「Movie」和「Actor」。每一行代表電影及其相關演員的組合。您的目標是將此資料轉換為新表,其中包含“Movie”列和“ActorList”列,後者包含每部電影中所有演員的逗號分隔清單。

為此,SQL的GROUP BY子句派上用場。 GROUP BY可讓您根據一個或多個列的值對行進行分組,然後套用聚合函數來計算每個組內的匯總資訊。

這裡的關鍵是string_agg()聚合函數。它連接來自指定列的值,並用您選擇的定界符分隔。在本例中,語法如下:

<code class="language-sql">SELECT Movie, string_agg(Actor, ', ') AS ActorList
FROM ActorsInfo
GROUP BY Movie;</code>

透過在SELECT和GROUP BY子句中都指定“Movie”,按電影標題對行進行分組,並透過連接用逗號分隔的Actor值來計算ActorList列。

結果是一個新表,其中每一行代表一部獨特的電影,“ActorList”列包含參與該電影的所有演員的完整列表。

以上是如何使用 SQL 的 GROUP BY 子句將多行資料合併為一行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn