我希望看到一个最简洁的方法来完成这个SO问题中概述的内容:Sum values from multiple rows into one row 也就是说,在合计列时组合多行。SQL Server将多个行合并为一个 - 没有临时表
但如何删除重复项。换句话说,我有这样的数据:
Person Value
--------------
1 10
1 20
2 15
我要总结的值任何重复(的人列)成单行和摆脱对个人价值的其他重复的。所以我的输出将是:
Person Value
-------------
1 30
2 15
而我想这样做,而不使用临时表。我认为我需要使用OVER PARTITION BY
,但不确定。只是试图挑战自己,而不是以临时表的方式进行。使用SQL Server 2008 R2
简而言之,给我一个简短的说明,从我的输入到同一个表中的输出。所以如果我的表名是People
,如果我在这个问题中要求的操作之前对它做了select * from People
,那么我会得到上面的第一个集合,然后当我在操作后执行select * from People
时,我会得到上面的第二组数据。
你的意思是'SELECT人,SUM(值)YourTable GROUP BY Person'?这将产生你描述的结果 –
如果你想**“摆脱其他重复的个人价值”**那么为什么30对Id 1 ??不应该是10或20? –
我想我还没有让自己清楚:我想合并具有相同Person值的所有行,同时将这些值相加。是的,@Yuriy确定这是获得结果的简单答案,现在我想用相同的方式将结果留在同一个(源)表中。 (换句话说,您的答案必须告诉我如何使用新值更新现有记录 - 或插入新值 - 然后删除具有相同Person值的所有其他记录。简而言之,请给我一个简洁的说明我的输入在同一个表中输出 –