oracle视图实现根据某一个条件查询,统计查询-根据条件进行count的两种实现方式- oracle...

Sql语句:

select b.departmentname, b.name,

count(case when b.businessstate='NOTSUBMIT' then 1 else null end ) NOTSUBMIT,

count(case when b.businessstate='ABANDONED' then 7 else null end ) ABANDONED,

count(b.id) allCounts

from business b group by b.departmentname, b.name

通过case when then else end这句话来限定条件,count进行统计。

另外,可以先建一张视图,通过sum来进行统计:

视图:

create or replace view view_business_statistics as

select b.id, b.name as BUSINESSNAME,b.DEPARTMENTNAME,b.sldate as SLDATE, b.applydate as APPLYDATE,

decode(b.businessstate,'NOTSUBMIT',1,0) as NOTSUBMITNUM,

decode(b.businessstate,'APPROVING',1,0) as APPROVINGNUM,

from business b;

通过sum进行统计的sql语句:

select b.departmentname, b.name,

sum(b.NOTSUBMITNUM) NOTSUBMIT,

sum(b.ABANDONED) ABANDONED,

count(b.id) allCounts

from business b group by b.departmentname, b.name

建立视图使用oracle自带的decode关键字(相当于case when),重新给列复制0和1,使用sum得到统计总数。

建立视图的思想是提高灵活性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值