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
您可以使用交叉联接来避免子查询:
SELECT t1.col1, t1.col2, sum(t2.col2) sum_col2
from tmp t1
cross join tmp t2
group by 1, 2
参见SQL小提琴
请注意,这仅在col1和col2的组合是唯一的情况下才有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句