본문 바로가기

DataBase/Oracle

한달을 요일별로 구함

Query
SELECT SUM(DECODE(A.A2, '1', A.A3, null)) 일요일,
       SUM(DECODE(A.A2, '2', A.A3, null))
월요일
,
       SUM(DECODE(A.A2, '3', A.A3, null))
화요일
,
       SUM(DECODE(A.A2, '4', A.A3, null))
수요일
,
       SUM(DECODE(A.A2, '5', A.A3, null))
목요일
,
       SUM(DECODE(A.A2, '6', A.A3, null))
금요일
,
       SUM(DECODE(A.A2, '7', A.A3, null))
토요일

FROM
   ( SELECT rownum + 7 - to_number(TO_CHAR(TO_DATE('200312' || TO_CHAR(rownum),'YYYYMMDD'),'D')) as A1,
            TO_CHAR(TO_DATE('200312' || TO_CHAR(rownum), 'YYYYMMDD'), 'D') as A2,
            rownum as A3
     FROM user_objects
     WHERE rownum <= 31
       AND rownum > 0
       And TO_CHAR(LAST_DAY(TO_DATE('200312' || '01', 'YYYYMMDD')), 'DD')>= LTRIM(TO_CHAR(rownum, '00'))
   ) A
GROUP BY A.A1
 
 결과
일요일     월요일     화요일     수요일     목요일     금요일     토요일
------ ---------- ---------- ---------- ---------- ---------- ----------
                   1           2              3           4           5          6
     7            8           9             10          11         12         13
    14           15         16             17          18         19         20
    21           22         23             24          25         26         27
    28           29         30             31