群裡一人提的關於資料複雜統計的問題

lwhjava發表於2012-04-21
現有表BD_WORK_INFO如下:
CREATE_BY   QUESTION_TYPE   CREATE_DATE   FILL_TIME(耗時)
A                    T102                     (DATE 型別)       0.14
B                    T106                     (DATE 型別)       0.15
C                    T103                     (DATE 型別)       0.17
A                    T106                     (DATE 型別)       0.18
B                    T102                     (DATE 型別)       0.19
D                   T109                     (DATE 型別)        0.33
(表大致如上,表很大,資料很多,但是隻需要用到這幾個。建立者一共有五十多個,問題型別一共有11個,但是隻需要其中的7個。現在要做的就是把這個表一些資料取出做計算後轉存在另外一張表,做一個報表的後臺資料表,要求如下:)
姓名  T106  耗時  T102 耗時 T103 耗時
(其中,T106需要以自然周統計,T102需要以自然月統計。列T102,T106,T103的內容是QUESTION_TYPE 中出現的次數,也就是COUNT()函式,耗時是出現同一QUESTION_TYPE  的總的耗時數,比如說建立人A在一週內出現了4次T106問題,那耗時就是這四次的總耗時。求個儲存過程,同時需要一個檢視,因為前臺我還做不出來。。。)
我折磨一週了。。後天BOSS就要

----------------
1)--view
create or replace view bd_work_info_tj as select create_by ,
case when question_type='T102' then fill_time end T102,
case when question_type='T106' then fill_time end T106,
case when question_type='T103' then fill_time end T103,
      create_date,
      to_char(create_date,'WW') week,
      to_char(create_date,'MM') month,
      to_char(create_date,'YYYY') years
from bd_work_info;
2)
select distinct create_by,
count(week) over(partition by create_by,week) COUNTT102,--出現次數
sum(T102) over(partition by create_by,week) SUMT102,--耗時
count(month) over(partition by create_by,month) COUNTT106,
sum(T106) over(partition by create_by,month) SUMT106,
count(T103) over(partition by create_by)  COUNTT103,
sum(T103) over(partition by create_by) SUMT103
from bd_work_info_tj order by create_by

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15483376/viewspace-721896/,如需轉載,請註明出處,否則將追究法律責任。

相關文章