2016-08-12 10 views
0

私はこの列を3つの列で構成します。まず :SQL - 異なる条件を持つ合計関数

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

は、その後、私は条件に基づいて合計(C2)との和(C3)の両方を取得します。

私は条件(c3)を適用したいだけです。 どうすればいいですか?

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

任意の提案を:私は以下試したし、それが動作しませんでした

? ありがとう!

答えて

2

あなたはc3合計を計算するために、条件付き集約とCASE表現を使用することができます。

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

Select c1, sum(c2), sum(case c4 when 'xxx' then 0 else c3 end) as c3 
from t 
group by c1 
を使用してみてください
関連する問題