我们说我有这样一张桌子:
COL1 COL2
ABC 1
DEF 2
GHI 3
我希望在新列COL3中得到COL2的总和:
COL1 COL2 COL3
ABC 1 6
DEF 2 6
GHI 3 6
所以拿一个简单的总和不会起作用,因为它只返回1个值,而我想要在所有行上重复该值。
答案 0 :(得分:4)
试试这个:
SELECT *
,(SELECT SUM(Col2) FROM Your_Table) Col3
FROM Your_Table
在SQL Server中尝试:
SELECT *
,SUM(Col2) OVER(ORDER BY(SELECT NULL)) Col3
FROM Your_Table
答案 1 :(得分:2)
由于你没有指定dbms,这应该适用于大多数(所有?)dbms(在sql server中测试):
DECLARE @T TABLE (Col1 VARCHAR(3), Col2 INT)
INSERT @T (Col1, Col2)
VALUES ( 'ABC' , 1 )
, ('DEF', 2)
, ('GHI', 3)
SELECT *
FROM @T
CROSS JOIN (
SELECT SUM(T.Col2) Col3
FROM @T AS T
) X
答案 2 :(得分:2)
答案 3 :(得分:1)
要添加两列,您必须执行连接查询。根据您的操作,您必须执行内部联接或外部联接。有关更多说明,您可以查看相应的数据库