【问题标题】:SQL - Sum functions with differentconditionSQL - 不同条件的求和函数
【发布时间】:2016-12-19 06:36:28
【问题描述】:

所以我有这个由 3 列组成的查询。 第一:

Select c1, sum(c2), sum(c3)
from t
where c4 not in ('xxx')
Group by c1

然后我根据条件得到 sum(c2) 和 sum(c3)。

我只想对 sum(c3) 应用条件。 我该怎么做?

我在下面尝试过,但没有成功:

Select c1, sum(c2), ( select sum(c3) from t where c4 not in ('xxx')) as c3
from t
group by c1

有什么建议吗? 谢谢!

【问题讨论】:

    标签: sql sum conditional-statements


    【解决方案1】:

    您可以使用带有条件聚合的CASE 表达式来计算c3 总和:

    SELECT c1,
           SUM(c2),
           SUM(CASE WHEN c4 NOT IN ('xxx') THEN c3 ELSE 0 END)
    FROM t
    GROUP BY c1
    

    【讨论】:

      【解决方案2】:

      尝试使用

      Select c1, sum(c2), sum(case c4 when 'xxx' then 0 else c3 end) as c3
      from t
      group by c1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多