주별 쿼리 목록 질문 드립니다. 0 4 1,402

by 박준수 [2020.12.08 11:08:46]



안녕하세요 선배님분들

현재 PostgreSQL 로 작업을 진행중인데요 주별로 통계 목록을 뽑는 쿼리를 질문 드립니다.

사용하는 컬럼이고

date 일자
week_cd 주별 코드
cascnt 통화 건수
time 통화 시간
go_cascnt 발령 건수
tlk_cascnt 발령 통화 건수
video_time영상 통화 시간 

내용은 아래와  같은 형태로 들어가 있습니다.

date         week_cd  cascnt  time go_cascnt  tlk_cascnt  video_time

2020-11-16    3           0       0       1              0          13
2020-11-25    4           0       0      68             0         3962

기준년월일 통화건수 영상통화시간
1주차 (2020-12-01 ~ 2020-12-04) 232 222시간 05분
2주차 (2020-12-07 ~ 2020-12-11) 321 3232시간 23분

위와 같은 형태로 목록을 뿌려야 하는데 

week_cd 여기에 1주차, 2주차 이렇게는 들어가고 있는데요

지금 일단 계속 저도 쿼리를 짜보고는 있는데 잘 안나와서 질문 드립니다.

기년 년월 별로 1,2,3,4,5주차 로 위와 같은 형태로 쿼리를 사용할 수 있도록 

가르침 부탁드립니다.

감사합니다.

by 마농 [2020.12.08 11:49:24]
SELECT TO_CHAR(date, 'yyyymm') ym
     , week_cd
     , SUM(cascnt    ) cascnt
     , SUM(time      ) time
     , SUM(go_cascnt ) go_cascnt
     , SUM(tlk_cascnt) tlk_cascnt
     , SUM(video_time) video_time
  FROM ttt
 GROUP BY TO_CHAR(date, 'yyyymm'), week_cd
;

 


by 박준수 [2020.12.08 13:46:17]

답변 정말 감사드립니다.

혹시 추가로 여쭤봐도 될지 모르겠지만

지금 내용이 붉은색으로 색칠해놓은 날짜는 

그냥 서브쿼리에서 별도로 가져와서 화면에서 합치는 방법으로 하면 될까요?

 


by 마농 [2020.12.08 14:20:38]

평일에만 통화하나요? 주말에는 통화 안하나요?
매일매일 자료가 들어오나요? 빈 날짜가 없다면?
단순하게 MIN(date), MAX(date) 로 뽑으면 될 듯 하구요.
빈 날짜도 있을 수 있다면? 날짜 계산에 의해 뽑으면 되는데.
Postgre 는 날짜함수가 익숙하지 않고, 현재 제가 직접 테스트가 불가해서 정확한 답변이 어렵네요.
오라클 기준으로 우선 답변 드릴께요. 참고 하세요.

SELECT TO_CHAR(date, 'yyyymm') ym
     , week_cd
     , week_cd || '주차(' ||
       TO_CHAR(TRUNC(MIN(date), 'd') + 1, 'yyyy-mm-dd')
       || ' ~ ' ||
       TO_CHAR(TRUNC(MIN(date), 'd') + 5, 'yyyy-mm-dd')
       || ')' week_nm
     , SUM(cascnt    ) cascnt
     , SUM(time      ) time
     , SUM(go_cascnt ) go_cascnt
     , SUM(tlk_cascnt) tlk_cascnt
     , SUM(video_time) video_time
  FROM ttt
 GROUP BY TO_CHAR(date, 'yyyymm'), week_cd
;

 


by 박준수 [2020.12.08 14:37:09]

네네 답변 감사합니다.

참고해서 작업마무리 해보겠습니다

감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입