【问题标题】:Aggregating positive values on multiple columns with SQL使用 SQL 聚合多个列上的正值
【发布时间】:2018-02-28 15:54:17
【问题描述】:

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

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】:

    如果我理解正确,您只想对正值求和,而忽略负值?如果是这样试试:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-19
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      相关资源
      最近更新 更多