CREATE TABLE tmp ( col1 int, col2 int );
INSERT INTO tmp VALUES (1,3), (2,5), (3,7);
SELECT col1, col2, SUM(col2) AS Total FROM tmp; -- ???
SELECT
语句给我留下了这个数据集:
COL1 COL2总
1 3 15
有没有办法允许所有行显示而不引入子查询,因此结果如下:
COL1 COL2总
1个3 15
2个5 15
3 7 15
答案 0 :(得分:0)
您可以使用交叉联接来避免子查询:
SELECT t1.col1, t1.col2, sum(t2.col2) sum_col2
from tmp t1
cross join tmp t2
group by 1, 2
请参阅SQL fiddle
请注意,这仅适用于col1和col2的组合是唯一的。