我有一张桌子,下面是
Col A
10
20
30
我要这个结果
Col A Col B
10 60
20 60
30 60
在其分析版本中使用
sum
:
SQL> with test (cola) as
2 (select 10 from dual union all
3 select 20 from dual union all
4 select 30 from dual
5 )
6 select cola,
7 sum(cola) over () colb --> this
8 from test;
COLA COLB
---------- ----------
10 60
20 60
30 60
SQL>
只需在分析函数上加上总和,您就会得到想要的结果。
select colA,sum(colA) over() colB from Table;
使用您的示例数据:
WITH tbl (COL_1) AS
(
SELECT 10 FROM Dual UNION ALL
SELECT 20 FROM Dual UNION ALL
SELECT 30 FROM Dual
)
...您可以选择总和作为子查询列:
Select COL_1, ( Select Sum(COL_1) From tbl ) "COL_2"
From tbl
Order By COL_1
...或者您可以使用 sum 子查询加入您的表
Select t1.COL_1, t2.COL_2
From tbl t1
Inner Join (Select Sum(COL_1) "COL_2" From tbl ) t2 ON(1 = 1)
Order By t1.COL_1
两者结果为:
COL_1 COL_2
---------- ----------
10 60
20 60
30 60