SQL Server:通过累加另一列来创建一列

时间:2018-11-27 17:26:40

标签: sql sql-server

我试图通过汇总同一表中另一列的值来在表中创建新列

这里是一个例子:

Header 1     Header 2      Header 3       (new column)
------------------------------------------------------
1            1             1               1
2            2             6              12
3            2             6              12
4            3             4               8
5            3             4               8

我希望根据标题2中的类别对总和进行分类,并使用标题3的值。

我可以为此使用什么SQL代码?

3 个答案:

答案 0 :(得分:2)

您需要窗口功能:

DF

答案 1 :(得分:0)

您还可以使用cte结构,例如:

;with cte (header2,Total) as (
  select header2,sum(header3) as Total
  from table 
  group by header2
)
select t.*,cte.Total
from table t
inner join cte on cte.header2 = t.header2

答案 2 :(得分:0)

您也可以使用

SELECT T1.*,
       (SELECT SUM(Header3) FROM T WHERE Header2 = T1.Header2) ExpectedResults
FROM T T1;