在同一视图中创建一个从另一列中汇总值的列

3
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()数据进行求和的重复问题。 - Timothy G.
2个回答

0
你可以像这样使用 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

我认为它是一样的。 - TriV

0

我不明白有什么意义,但是:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接