我想编写一个SQL查询,将字段C作为字段A中每个唯一行的字段B的总和。因此对于X,字段B具有10和35,因此字段C对于两行都应为45 X。
我需要一个查询,该查询将把整个结果作为一个“数据集”返回,如下所示(而不是只给我字段C的查询)。我想也许我需要2个查询?一个要获取A和B结果,然后是第二个查询以从结果中选择字段C的SUM( expression )?
答案 0 :(得分:4)
答案 1 :(得分:3)
看起来像Sami在我执行复制/粘贴时发布的:),但这是一个类似的解决方案:
Declare @test Table
(
a varchar(10),
b int
)
Insert Into @test (a, b) Values ('X', 10);
Insert Into @test (a, b) Values ('Y', 15);
Insert Into @test (a, b) Values ('Z', 40);
Insert Into @test (a, b) Values ('X', 35);
Insert Into @test (a, b) Values ('Y', 10);
Select t.a, t.b, (Select sum(sq.b) From @test sq Where sq.a = t.a) as c
From @test t
答案 2 :(得分:2)
下面给出的查询就足够了。
select A,B, SUM(B) OVER(PARTITION BY A) AS C FROM TABLE