2016-04-13 4 views
1

У меня есть следующий запрос:Сумма в случае -Oracle

select Type, 

sum (case when a=1 then 1 end) as A, 

sum (case when a=0 then 1 end) as B 

это будет отображать 2 колонки A, B и их итоги. Мне нужен третий столбец, который отображает сумму A и B в строке. что-то вроде:

Type  A   B  Total 

Apple  5     5 

Orange  3   4  7 

Kiwi  2   1  3 

Peach    6  6 

Я попытался следующие, но это не похоже на работу:

select Type, 

sum (case when a=1 then 1 end) as A, 

sum (case when a=0 then 1 end) as B, 

sum (A+B) as Total 

ответ

1

Вы можете рассчитать Total с помощью:

select Type, 
    sum(case when a=1 then 1 end)  as A, 
    sum(case when a=0 then 1 end)  as B, 
    sum(case when a IN (0,1) then 1 end) as Total 
... 
+1

спасибо! это помогло! – Skn

1

Если вы заинтересованы только в значениях 0 и 1, то это, пожалуй, проще:

select Type, sum(a) as A, sum(1 - a) as B, count(*) as Total 
from t 
where a in (0, 1) 
group by Type; 
+0

Я пошел с утверждением дела, так как у меня уже было это, но теперь я знаю, что это тоже можно сделать. Спасибо. – Skn