2016-10-17 32 views
0

レッドシフトの「月曜日〜日曜日」の最後の3か月はどのように取得できますか?最後の3ヶ月の月曜日から日曜日の日付を取得する方法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 

アマゾン赤方偏移でgenerate_series()は、既存の表と結合することはできませんのでご注意ください。これは「リーダーのみ」のクエリとしてのみ使用できます。

+0

thanks.is good ..... ..... – Velu

関連する問題