案例1:case when 案例分析

案例:

得出此結果:(表g_test  時間列update_time   date   功率列pm  number) 

  月份、功率分佈情況、數量

2013-01  功率小於70    30

2013-01   功率70         21

2013-01    功率71          30

2013-01    功率72          35

2013-01   功率73          40

2013-01   功率74          44

2013-01   功率75         41

2013-01    功率大於75  40

2013-02   功率72          35

2013-02    功率73          40

2013-02   功率74          44

2013-02    功率75          41

2013-02   功率大於75   40

注:pm值小數點不算,

71.1算做71,

71.9也算作71

根據update_time,分別彙總20131月至5月的數據。

 

方法一:

SQL>SELECT to_char(update_time, 'yyyymm'),

CASE WHEN trunc(pm) < 70 THEN '功率小於70'

WHEN trunc(pm) >= 76 THEN '功率大於等於76'

ELSE '功率'|| to_char(trunc(pm))

END 功率分佈情況,

COUNT(pm)

FROM g_test

WHERE to_char(update_time, 'yyyymm') BETWEEN '201301' AND '201305'

GROUP BY to_char(update_time, 'yyyymm'),

CASE WHEN trunc(pm) < 70 THEN '功率小於70'

WHEN trunc(pm) >= 76 THEN '功率大於等於76'

ELSE '功率'|| to_char(trunc(pm))

END

ORDER BY to_char(update_time, 'yyyymm');

 

方法二:

 

SELECT to_char(update_time, 'yyyy-mm') as 月份,
       CASE WHEN trunc(pm) <  70 THEN '功率小於70'
            WHEN TRUNC(pm) >= 76 THEN '功率大於等於76'
            WHEN pm IS NULL THEN 'PM異常值'
            ELSE '功率'|| to_char(trunc(pm))
       END 功率分佈情況,
       COUNT(*) AS "統計數量"
  FROM g_test
WHERE 
     update_time >= to_date('2013-01-01 00:00:00','YYYY-MM-DD hh24:mi:ss') 
AND update_time <= to_date('2013-06-01 00:00:00','YYYY-MM-DD hh24:mi:ss')
GROUP BY to_char(update_time, 'yyyy-mm'),
       CASE WHEN trunc(pm) <  70 THEN '功率小於70'
            WHEN trunc(pm) >= 76 THEN '功率大於等於76'
            WHEN pm IS NULL THEN 'PM異常值'
            ELSE '功率'|| to_char(trunc(pm))
       END
ORDER BY to_char(update_time, 'yyyy-mm')

;

1
、注意時間,儘量把表達式寫在右邊。

2、處理空值,PM異常值。

3、count(*) 即可,不用count(pm),否則異常值統計不出來。

月份功率分佈情況統計數量

-------------- --------------- ----------

2013-03功率74   14135

2013-03功率75   1620

2013-03功率大於等於76   1039

2013-03功率小於70   10705

2013-04PM異常值   15

2013-04功率70   1915

2013-04功率71  3261

2013-04功率72  6238

2013-04功率73  8536

2013-04功率74  5780

2013-04功率75  1251

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章