使用SQL在多列上聚合正值

问题描述 投票:0回答:1

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

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

注意:数据集很大。

mysql sql
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.