使用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中文網其他相關文章!