Oracle一张表中实现多个字段的统计(多个count)


需求:统计WAIT_ORDER表中的工单总数、未处理工单总数、已完成工单总数、未完成工单总数。


表结构 : 为了举例子方便,WAIT_ORDER表只有两个字段,分别是ID、STATUS,其中STATUS为工单的状态。1表示未处理,2表示已完成,3表示未完成总数。

SQL:  

  1. SELECT   
  2.        COUNT(B.ID) AS 工单总数,  
  3.        COUNT(CASE  
  4.                WHEN B.status  IN ('1'THEN  
  5.                 'un_deal'  
  6.              END) 未处理工单总数,  
  7.                
  8.        COUNT(CASE  
  9.                WHEN B.status IN ('2'THEN  
  10.                 'had_complete'              
  11.              END) 已完成工单总数,  
  12.          
  13.        COUNT(CASE  
  14.                WHEN B.status = '3' THEN  
  15.                 'un_complete'              
  16.              END) 未完成工单总数  
  17.                           
  18.  FROM WAIT_ORDER B    

结果为下图:

相关内容