Oracle / SQL Couting несколько столбцов, сгруппированных по общему столбцу - PullRequest
1 голос
/ 26 января 2011

Я вернулся с еще одним запросом Oracle.Я хочу рассчитывать на несколько столбцов, сгруппированных по общему полю.У меня пока половина этого сделано.Итак, учитывая следующую таблицу

THING ACTION
--------------
T1  _A_
T1  _A_
T1  _B_
T2  _A_
T2  _B_

У меня есть этот запрос

select    THING,
    count(ACTION) as "A"
 from  <table>
 where  ACTION = '_A_'
 group by THING

Что приводит к

THING A
----------
T1    2
T2    1

Что я хотел бы увидеть, хотя это

THING A B
--------------
T1    2   1
T2    1   1

Но я не уверен, как это сделать.Есть идеи?

Спасибо!

1 Ответ

6 голосов
/ 26 января 2011
select thing,
       count(case action when '_A_' then 1 end) as a,
       count(case action when '_B_' then 1 end) as b
from <table>
group by thing

или sum(case action when '_A_' then 1 else 0 end), если вы предпочитаете

...