2016-10-17 3 views
0

Redshift에서 지난 3 개월간의 "Monday to Sunday"날짜는 어떻게받을 수 있습니까?지난 3 개월간의 "Monday to Sunday"날짜를 얻는 방법 Redshift에서?

select 
    trunc(date_trunc('week',sysdate)) st_dt, 
    trunc(date_trunc('week', sysdate)+6) ed_dt, 
    'week'||row_number() over (order by null) as week 

을하지만은 현재 주 월요일과 일요일 반환

S.no Start_dt End_dt week 
1 18-Jul-16 24-Jul-16 Week1 
2 25-Jul-16 31-Jul-16 Week2 
3 1-Aug-16 7-Aug-16 Week3 
4 8-Aug-16 14-Aug-16 Week4 
5 15-Aug-16 21-Aug-16 Week5 
6 22-Aug-16 28-Aug-16 Week6 
7 29-Aug-16 4-Sep-16 Week7 
8 5-Sep-16 11-Sep-16 Week8 
9 12-Sep-16 18-Sep-16 Week9 
10 19-Sep-16 25-Sep-16 Week10 
11 26-Sep-16 2-Oct-16 Week11 
12 3-Oct-16 9-Oct-16 Week12 
13 10-Oct-16 16-Oct-16 Week13 

나는 이것을 시도했습니다.

+0

요구 사항을 명확히 설명해 주시겠습니까? 쿼리의 결과 또는 생성하려는 출력을 표시하고 있습니까? 귀하가 제공 한 SELECT 문에 어떤 문제가 있습니까? 무엇을 시도하고 어떤 오류가 발생 했습니까? –

+0

답장을 보내 주셔서 감사합니다. 내 선택 진술서는 현재 주일 (월요일 - 일요일) 만 반환합니다. 그러나 지난 90 일간의 날짜 (월요일 - 일요일)가 필요합니다. – Velu

답변

0

당신은 날짜 범위를 생성하는 generate_series()을 사용할 수 있습니다 :이 결과

SELECT 
    trunc(day)  as start_date, 
    trunc(day + 6) as end_date 
FROM 
    (select date_trunc('week', sysdate) + (generate_series(1, 12) * interval '1 week') as day) 
ORDER BY 1 ASC 

:

week start week end 
2016-10-24 2016-10-30 
2016-10-31 2016-11-06 
2016-11-07 2016-11-13 
2016-11-14 2016-11-20 
2016-11-21 2016-11-27 
2016-11-28 2016-12-04 
2016-12-05 2016-12-11 
2016-12-12 2016-12-18 
2016-12-19 2016-12-25 
2016-12-26 2017-01-01 
2017-01-02 2017-01-08 
2017-01-09 2017-01-15 

아마존 Redshift에의 generate_series()가 기존 테이블과 결합 될 수 없음을 유의하시기 바랍니다. "리더 전용"쿼리로만 사용할 수 있습니다.

+0

감사합니다. 좋은 일 ..... – Velu

관련 문제