Sql 基于同一关键字将多行合并为一行
我有以下数据集:Sql 基于同一关键字将多行合并为一行,sql,sql-server,stored-procedures,sql-server-2016,Sql,Sql Server,Stored Procedures,Sql Server 2016,我有以下数据集: key column1 column2 column3 20171021 1 0 0 20171021 0 1 0 20171021 0 0 1 如您所见,所有行的键都是相同的 我需要以下输出: key column1 column2 column3 20171021 1 1 1 有人能帮我写一个sql语句来完成这项工作吗?
key column1 column2 column3
20171021 1 0 0
20171021 0 1 0
20171021 0 0 1
如您所见,所有行的键都是相同的
我需要以下输出:
key column1 column2 column3
20171021 1 1 1
有人能帮我写一个sql语句来完成这项工作吗?这看起来像一个简单的聚合查询:
SELECT [key], MAX(column1) column1, MAX(column2) column2, MAX(column3) column3
FROM mytable
GROUP BY [key]
注意:我使用了聚合函数MAX()
,但给定您的示例数据,它也可以是您需要的SUM()
;选择一个适合您的用例。使用聚合
select [key], max(ccolumn1),max(column2) ,max(colum3) from table group by [key]
您可以使用max()和group by
来实现这一点
select [key], max(column1), max(column2), max(column3) from tableA group by [key]