1. 程式人生 > >查詢資料庫表某一列出現某個詞的個數,累加,不存在補0

查詢資料庫表某一列出現某個詞的個數,累加,不存在補0

場景描述:辦案方式、處置情況、辦理結果分別為一個欄位,下邊的分支分別對應欄位的不同值。

現需要統計每個欄位不同值的數量,沒有的需要填0,存在的進行累加。


select

CASE_INFO.CITY_CODE ,
"SUM"("DECODE"("CASE_INFO"."CASE_AJLB", '01', 1,'02',1,'03',1,'04',1,'05',1,0)) as CASE_SHSEFB ,
"SUM"("DECODE"("CASE_INFO"."CASE_AJLB", '1', 1,0)) as CASE_BHS ,

"SUM"("DECODE"("CASE_INFO"."CASE_BAFS", '0', 1,0)) as CASE_ZCZB ,
"SUM"("DECODE"("CASE_INFO"."CASE_BAFS"
, '1', 1,0)) as CASE_YDBL ,
"SUM"("DECODE"("CASE_INFO"."CASE_BAFS", '2', 1,0)) as CASE_SDBL ,
"SUM"("DECODE"("CASE_INFO"."CASE_BAFS", '3', 1,0)) as CASE_QT ,

"SUM"("DECODE"("CASE_INFO"."CASE_CZQK", '0', 1,0)) as CASE_DC ,
"SUM"("DECODE"("CASE_INFO"."CASE_CZQK", '1', 1,0)) as CASE_HCZ ,
"SUM"("DECODE"("CASE_INFO"."CASE_CZQK"
, '2', 1,0)) as CASE_CH ,
"SUM"("DECODE"("CASE_INFO"."CASE_CZQK", '3', 1,0)) as CASE_LASC ,

"SUM"("DECODE"("CASE_INFO"."CASE_BLJG", '0', 1,0)) as CASE_CSCJ ,
"SUM"("DECODE"("CASE_INFO"."CASE_BLJG", '1', 1,0)) as CASE_CFCJ ,
"SUM"("DECODE"("CASE_INFO"."CASE_BLJG", '2', 1,0)) as CASE_YSGAJG

FROM CASE_INFO LEFT JOIN CLUE_INFO ON CASE_INFO.CLUE_ID = CLUE_INFO.CLUE_ID
WHERE CLUE_INFO.CLUE_SOURCE ='00' OR CLUE_INFO.CLUE_SOURCE ='01' OR CLUE_INFO.CLUE_SOURCE ='02' OR CLUE_INFO.CLUE_SOURCE ='03'

GROUP BY CASE_INFO.CITY_CODE

注:1.orcale資料庫   2. decode函式的理解 (oracle);對於mysql實現可用case when  3.sum函式累加