select trim(man_date_created) createddate,count(*) recordcount
from man
where man_status IN ('received','acknowledge')
私はそれぞれのようなカウントを受け入れたいと思っています。どのように私はそれを抽出できますか?IN演算子に存在する各要素の数を取得する方法は?
select trim(man_date_created) createddate,count(*) recordcount
from man
where man_status IN ('received','acknowledge')
私はそれぞれのようなカウントを受け入れたいと思っています。どのように私はそれを抽出できますか?IN演算子に存在する各要素の数を取得する方法は?
使用条件付き集約:
select trim(man_date_created) createddate,
count(*) recordcount,
count(case when man_status = 'ACCEPTED' then 1 end) as accepted,
count(case when man_status = 'SUBMITTED' then 1 end) as submitted,
count(case when man_status = 'CREATED' then 1 end) as created,
count(case when man_status = 'REJECTED' then 1 end) as rejected
from man
where man_status IN ('ACCEPTED','SUBMITTED','CREATED','REJECTED')
group by man_date_created
group by句はありませんか? – jarlh
@jarlhはい、あなたは正しいです。 –
私は単にGROUP BY
にしてください。 (派生テーブルでtrim
一部では、ANSI SQLに準拠するように。)
select createddate, man_status, count(*)
from
(
select trim(man_date_created) createddate, man_status
from man
where man_status IN ('ACCEPTED','SUBMITTED','CREATED','REJECTED')
)
group by createddate, man_status
はその後in
の代わりにleft join
を使用し、彼らがゼロである場合でも、あなたがカウントをしたいと仮定すると:
select s.status, count(man.man_status) as recordcount
from (select 'ACCCEPTED' as status from dual union all
select 'SUBMITTED' as status from dual union all
select 'CREATED' as status from dual union all
select 'REJECTED' as status from dual union all
) s left join
man
on man.man_status = s.status
group by s.status;
を含めます日付もクエリを複雑にします。
なぜJavaタグですか? SQLでGROUP BYを見てください。 – mrbela