database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39013 게시물 읽기
No. 39013
주별(금요일) 집계 쿼리
작성자
김정묵(popolio)
작성일
2011-10-27 18:12
조회수
4,978

 

 

주별 집계 궈리 작성을 할려고 하는데.

원본 데이터는 다음과 같습니다.

=== 원본 =====

날짜               건수

2011-01-01  10

2011-01-02  42

2011-01-03  13

....

2011-10-01  5

2011-10-02 59

==============

이렇게 데이타가 입력되는데,  결과는 아래처럼 보고.. 싶어요..

 

매주 금요일 데이타 건수 합계를 구하고 보이는 결과 입니다.

결과.... 는

===============

2011-01-07        128

2011-01-14        231

2011-01-21       149

....

...

2011-10-21     201

================

 

어렵네요...

이 글에 대한 댓글이 총 2건 있습니다.

WITH T AS(
    SELECT '2011-01-01' DAY,10 CNT FROM DUAL UNION ALL
    SELECT '2011-01-02' DAY,42 FROM DUAL UNION ALL
    SELECT '2011-01-03' DAY,13 FROM DUAL UNION ALL
    SELECT '2011-01-07' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-08' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-09' DAY,2 FROM DUAL UNION ALL
    SELECT '2011-01-10' DAY,3 FROM DUAL UNION ALL
    SELECT '2011-01-11' DAY,13 FROM DUAL UNION ALL
    SELECT '2011-01-12' DAY,1 FROM DUAL UNION ALL
    SELECT '2011-01-13' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-14' DAY,1 FROM DUAL UNION ALL
    SELECT '2011-01-15' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-19' DAY,2 FROM DUAL UNION ALL
    SELECT '2011-01-20' DAY,3 FROM DUAL UNION ALL
    SELECT '2011-01-21' DAY,4 FROM DUAL
)
SELECT DAY,RESULT
FROM
(
    SELECT DAY,CNT
    ,TO_CHAR(TO_DATE(DAY,'YYYY-MM-DD'),'D') YOIL
    ,SUM(CNT) OVER(PARTITION BY TO_CHAR(TO_DATE(DAY,'YYYY-MM-DD'),'WW')) RESULT
    FROM T
)
WHERE YOIL = 6
ORDER BY DAY

 

 

sdalf님이 2011-10-27 19:04에 작성한 댓글입니다. Edit

WITH T AS(
    SELECT '2011-01-01' DAY,10 CNT FROM DUAL UNION ALL
    SELECT '2011-01-02' DAY,42 FROM DUAL UNION ALL
    SELECT '2011-01-03' DAY,13 FROM DUAL UNION ALL
    SELECT '2011-01-07' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-08' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-09' DAY,2 FROM DUAL UNION ALL
    SELECT '2011-01-10' DAY,3 FROM DUAL UNION ALL
    SELECT '2011-01-11' DAY,13 FROM DUAL UNION ALL
    SELECT '2011-01-12' DAY,1 FROM DUAL UNION ALL
    SELECT '2011-01-13' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-14' DAY,1 FROM DUAL UNION ALL
    SELECT '2011-01-15' DAY,5 FROM DUAL UNION ALL
    SELECT '2011-01-19' DAY,2 FROM DUAL UNION ALL
    SELECT '2011-01-20' DAY,3 FROM DUAL UNION ALL
    SELECT '2011-01-21' DAY,4 FROM DUAL
)
select max(day) max_day,sum(cnt) cnt
from t
group by to_char(to_date(day,'yyyy-mm-dd')+2,'yyyy'),
         to_char(to_date(day,'yyyy-mm-dd')+2,'iw')
order by max_day

aaa님이 2011-10-28 13:00에 작성한 댓글입니다.
이 댓글은 2011-10-28 13:23에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39016초보자 급질문 드립니다. [2]
제로
2011-10-28
3519
39015date 컬럼에 타임존 정보도 저장이 되나요? [1]
조동건
2011-10-28
4602
39014\uC2DC\uC791 이런 문자를 한글로 [4]
taiji
2011-10-28
5778
39013주별(금요일) 집계 쿼리 [2]
김정묵
2011-10-27
4978
39012집계테이블의 group by 속도 문제입니다. ㅠ [1]
모래두지
2011-10-27
4642
39011[급 질문] 도와주세요 형변환 [4]
김성훈
2011-10-26
4848
39010불필요 컬럼 SELECT에서 제외시 성능영향 여부..? [1]
궁금이
2011-10-26
4260
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다