我正在使用TSQL从数据库中选择数据。我想选择表中的所有数据但是如果id是重复的,则添加(sum)所有具有相同ID的列'a'并使其仅为1行。
输出中应该没有重复的ID。
SELECT DISTINCT id,a,b FROM dbo.test WHERE
id not in (select id from dbo.test) CASE a WHEN a + a??
示例:
dbo.test
========
id a
1 4
1 5
2 3
3 2
output:
1 9 <-- two ids of 1 so column 'a' is added together.
2 3
3 2
答案 0 :(得分:5)
SELECT ID, SUM(a) as a, SUM(b) as B
FROM MyTable
GROUP BY ID
这就是分组和聚合的目的!
仅供参考,汇总的工作原理如下:
分组和汇总字段时,您将记录合并为一行。
在您的操作系统中,您希望SUM
的每个值都A
ID
。这就是我发布的原始查询所做的。
您还希望根据您的评论添加B
varchar
字段。
在这种情况下,您需要决定如何处理B
。由于您要将多个行组合在一起,因此每个值B
(可能)有多个ID
值。你需要:
B
分组,这将添加额外的行MAX()
,MIN()
等汇总应用于B
B
。