[PostgreSQL] 전년도의 같은 주, 같은 날짜 0 1 1,104

by 김백산 [SQL Query] PostgreSQL sql postgre [2020.04.17 10:30:34]



case
when (7* R.week::int) + R.weekday::int - extract(dow from date_trunc('month', R.generate_date)) :: integer - 6 :: integer   >=    1  AND  
(7* R.week::int) + R.weekday::int - extract(dow from date_trunc('month', R.generate_date)) :: integer - 6 :: int   <=   extract( day from date_trunc('month', R.generate_date)+'1 month'::interval-'1day'::interval) :: int
then (DATE_TRUNC('month', R.generate_date))::DATE + ((7*R.week :: int) + R.weekday::int - extract(dow from date_trunc('month', R.generate_date)) :: integer - 7) :: int

week = 주, weekday = 요일 인덱스 , generate_date = 2019-03-05 같은 날짜

현재 전년도의 요일 기준으로 매년 반복해서 같은 주, 같은 요일에 데이터를 생성하고있는데 조건이 위와 같습니다.

근데 다음 식이 이해가 안갑니다.. 왜 해당 달의 날짜 + 6을 제외하는지..

식 : (7*주) + 해당요일 인덱스 - 해당 달의 시작날짜 인덱스 - 6

 

그래서 현재 전년도의 해당 주 , 해당 요일에 반복으로 생성되지만 만약 2018-03-05를 기준으로 할 경우

2019-03 월의 첫번째 월요일은 첫쨰 주에 존재하지않고 둘째 주에 존재해서 생성이 안되는데 조건을

어떻게 바꿔야 할 까요?

by 마농 [2020.04.17 15:06:23]

쿼리의 일부만 보여 주셔셔 판단하기 힘드네요.
원본 데이터 대비 원하는 결과데이터 형태를 보여주시면 좋을 것 같습니다.

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