View:
A | B
10 1
15 2
12 3
5 2
2 1
2 1
Output View:
A | B | C
10 1 14
15 2 20
12 3 12
5 2 20
2 1 14
2 1 14
我需要根据列B来计算列A的值之和。因此,所有列B中具有值1的值都会提取列A中的值,并将其加总到列C中。
View:
A | B
10 1
15 2
12 3
5 2
2 1
2 1
Output View:
A | B | C
10 1 14
15 2 20
12 3 12
5 2 20
2 1 14
2 1 14
我需要根据列B来计算列A的值之和。因此,所有列B中具有值1的值都会提取列A中的值,并将其加总到列C中。
SUM() OVER
。DECLARE @SampleData AS TABLE
(
A int,
B int
)
INSERT INTO @SampleData
(
A,
B
)
VALUES
( 10, 1),
( 15, 2),
( 12, 3),
( 5 , 2),
( 2 , 1),
( 2 , 1)
SELECT *,
sum(sd.A) OVER(PARTITION BY sd.B) AS C
FROM @SampleData sd
返回
A B C
-----------
10 1 14
2 1 14
2 1 14
15 2 20
5 2 20
12 3 12
我不明白有什么意义,但是:
SELECT t.a
,t.b
,sumtab.c
FROM [yourtable] t
INNER JOIN (
SELECT t.b
,sum(t.a) AS C
FROM [yourtable] t
GROUP BY t.b
) AS sumtab
ON t.b = sumtab.b