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得到统计总数。

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

 

相关文章:

  • 2023-03-30
  • 2021-12-22
  • 2022-12-23
  • 2021-11-23
  • 2021-06-04
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
相关资源
相似解决方案