合并重复数据行并保留各字段1值的SQL查询需求咨询
合并重复行并保留字段中1值的SQL实现
需求说明:将同一Name对应的多行数据合并为单行,确保各字段里的1值不丢失——只要该字段在任意一行中为1,合并后就保留1,否则为0。
当前数据表
Name ABC XYZ APT STA ZIP -------------------------------- Computer 0 0 0 0 0 Computer 0 0 0 1 0 Computer 0 0 0 0 0 Computer 1 0 0 0 0 Computer 0 0 0 0 0
期望结果
Name ABC XYZ APT STA ZIP -------------------------------- Computer 1 0 0 1 0
SQL查询语句
SELECT Name, MAX(ABC) AS ABC, MAX(XYZ) AS XYZ, MAX(APT) AS APT, MAX(STA) AS STA, MAX(ZIP) AS ZIP FROM your_table_name GROUP BY Name;
说明
因为字段值只有0和1,使用MAX()聚合函数可以精准实现需求:它会提取每个字段分组后的最大值,只要分组内有一行该字段为1,结果就会保留1,否则为0。记得把your_table_name替换成你实际的数据表名称。
内容的提问来源于stack exchange,提问作者Steve Richard
相关产品推荐
相关产品推荐

