首页 >数据库 >mysql教程 >如何使用聚合函数将多个 SQL 行合并为一行?

如何使用聚合函数将多个 SQL 行合并为一行?

Linda Hamilton
Linda Hamilton原创
2024-12-23 12:53:10392浏览

How Can I Merge Multiple SQL Rows into a Single Row Using Aggregate Functions?

在 SQL 中合并行

在使用数据库时,您可能会遇到需要将多行数据合并到一条记录中的情况。考虑下表包含两个字段“Field1”和“Field2”:

FK Field1 Field2
3 ABC NULL
3 NULL DEF

目标是检索以下组合数据:

FK Field1 Field2
3 ABC DEF

要合并这些行,请聚合可以利用函数。聚合函数(例如 MAX)会忽略 NULL 值。通过将 MAX 聚合函数应用于“Field1”和“Field2”,您可以获得每个组的最大非 NULL 值,从而有效地将数据合并到单行中。

以下查询演示了这种方法:

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;

此查询按“FK”列对行进行分组,并将 MAX 聚合函数应用于“Field1”和“Field2”。结果是一个表,其中每一行代表原始拆分行的组合数据。

作为示例,请考虑以下测试数据:

CREATE TABLE table1 (FK int, Field1 varchar(10), Field2 varchar(10));

INSERT INTO table1 VALUES (3, 'ABC', NULL);
INSERT INTO table1 VALUES (3, NULL, 'DEF');
INSERT INTO table1 VALUES (4, 'GHI', NULL);
INSERT INTO table1 VALUES (4, 'JKL', 'MNO');
INSERT INTO table1 VALUES (4, NULL, 'PQR');

对此数据运行合并查询产生以下结果:

FK Field1 Field2
3 ABC DEF
4 JKL PQR

通过利用聚合函数,您可以有效地将多行数据合并到单个组合记录中。

以上是如何使用聚合函数将多个 SQL 行合并为一行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn