Подсчет разных значений

Рейтинг: 0Ответов: 1Опубликовано: 17.10.2014

Добрый вечер, господа!

Прошу помощи...

Есть таблица:

name   status   amount
-----------------------
val1   1        45643
val2   2        32115
val3   1        46431
val4   2        23366

Пожалуйста, подскажите, как в селекте ниже вывести 2 колонки, в одной посчитать amount для status = 1, во второй - для status = 2. В селекте считается общий amount. Можно ли сделать требуемый подсчет без вложенных селектов?

select name, date, etc, wtf,
sum(case when status !=1 then 1 else 0 end) as "2_count",
sum(amount) as "all_amount"
from foo, wtf, mega_table
where
/* over 9000 разных условий и связей тут */

Спасибо!

Ответы

▲ 1Принят
select name, date, etc, wtf,
sum(case when status =1 then amount else 0 end) as "status_1",
sum(case when status =2 then amount else 0 end) as "status_2",
sum(amount) as "all_amount"
from foo, wtf, mega_table