使用SQL

时间:2018-02-28 15:54:18

标签: mysql sql

我正在尝试在具有多列的特定数据库表上执行聚合函数。 例如:

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查询是否可以实现这一点,或者我是否需要创建临时表?

注意:数据集很大。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你只想要正数值,并忽略负数?如果是这样,试试:

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