Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH this_yw AS (
- SELECT year_week
- FROM calendar
- WHERE date = CURRENT_DATE
- ),
- all_yw AS (
- SELECT DISTINCT
- year_week,
- DENSE_RANK() OVER (ORDER BY year_week ASC) AS "yw_rank"
- FROM calendar
- ),
- yw_ranges AS (
- SELECT
- ty_ywk.year_week AS "this_year_week",
- ly_ywk.year_week AS "last_year_week"
- FROM this_yw
- JOIN all_yw AS ty_rnk ON ty_rnk.year_week = this_yw.year_week
- JOIN all_yw AS ty_ywk ON ty_ywk.yw_rank BETWEEN ty_rnk.yw_rank - 3 AND ty_rnk.yw_rank
- JOIN all_yw AS ly_ywk ON ly_ywk.yw_rank = ty_ywk.yw_rank - 100
- )
- SELECT
- calendar.date,
- 'this' AS "period"
- FROM calendar
- JOIN yw_ranges ON yw_ranges.this_year_week = calendar.year_week
- UNION
- SELECT
- calendar.date,
- 'last' AS "period"
- FROM calendar
- JOIN yw_ranges ON yw_ranges.last_year_week = calendar.year_week
- ORDER BY 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement