首页 >数据库 >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