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]