mysql中case when語法學習

有這樣一個需求,數據存放在excel中,需要進行分類、累加、求和操作,最后需要根據自定義查詢條件,展現到頁面上,如果用人工進行分類計算,在數據量很大的情況下,工作量可想而知。
excel中的格式如下:
編號,項目編碼,項目名稱,類別代碼,類別名稱,子類別代碼,子類別名稱,有效數量,無效數量,...等,需要按一定的規則分類別統計,類別有五種,分別為01(管理)、02(服務)、03(農業)、04(工業)、05(3C),其中子類別中,A開頭的歸屬于01, C開頭的歸屬于02,B02、B04開頭的歸屬于03,B03、B05的歸屬于04,B01的歸屬于05
我的思路通過java解析excel把數據導入到mysql中,再利用sql進行統計,如下

SELECT
    t.inst_code,
    t.inst_name,
    CASE
WHEN LEFT (t.type_code, 1) = 'A' THEN
    '01'
WHEN LEFT (t.type_code, 1) = 'C' THEN
    '02'
WHEN LEFT (t.type_code, 3) = 'B02'
OR LEFT (t.type_code, 3) = 'B04' THEN
    '03'
WHEN LEFT (t.type_code, 3) = 'B03'
OR LEFT (t.type_code, 3) = 'B05' THEN
    '04'
ELSE
    '05'
END , 
SUM(t.effective_num)
FROM
    tbl_temp_auth_num_statics t
GROUP BY
    t.inst_code,
    t.inst_name,
    CASE
WHEN LEFT (t.type_code, 1) = 'A' THEN
    '01'
WHEN LEFT (t.type_code, 1) = 'C' THEN
    '02'
WHEN LEFT (t.type_code, 3) = 'B02'
OR LEFT (t.type_code, 3) = 'B04' THEN
    '03'
WHEN LEFT (t.type_code, 3) = 'B03'
OR LEFT (t.type_code, 3) = 'B05' THEN
    '04'
ELSE
    '05'
END 

查詢的結果如下:

image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容