根据同一键将多行合并为一行

时间:2019-09-30 07:51:25

标签: 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语句吗?

3 个答案:

答案 0 :(得分:0)

这看起来像一个简单的汇总查询:

SELECT [key], MAX(column1) column1, MAX(column2) column2, MAX(column3) column3
FROM mytable
GROUP BY [key]

注意:我使用了聚合函数MAX(),但是鉴于您的示例数据,它也可能是您需要的SUM()。选择适合您的用例的一个。

答案 1 :(得分:0)

使用聚合

select [key], max(ccolumn1),max(column2) ,max(colum3) from table group by [key]

答案 2 :(得分:0)

您可以使用max() and group by来实现。

select [key], max(column1), max(column2), max(column3) from tableA group by [key]
相关问题