我试图在具有多列的特定数据库表上执行聚合函数。例如:
Sample Table
ID Column1 Column2 Column3
1 3 5 -2
2 -1 4 6
3 2 -1 3
在这个例子中,如果我想对3列中的值求和,我想得到以下结果: 第1列:(3 + 2)= 5,第2列(5 + 4)= 9,第3列(6 + 3)= 9。 因此,我的问题是,使用单个SQL查询是否可以实现这一点,或者我是否需要创建临时表?
注意:数据集很大。
如果我理解正确,你只想要正数值,并忽略负数?如果是这样尝试:
SELECT
SUM(CASE WHEN Column1 > 0 THEN Column1 ELSE 0 END) AS 'Column1PosTotal',
SUM(CASE WHEN Column2 > 0 THEN Column2 ELSE 0 END) AS 'Column2PosTotal',
SUM(CASE WHEN Column3 > 0 THEN Column3 ELSE 0 END) AS 'Column3PosTotal'
FROM Table