Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT
- a.*,
- lead(avgv,-1) over (partition by "MONTH" order by "DOY") as prev,
- a.avgv-lead(avgv,-1) over (partition by "MONTH" order by "DOY") AS prev_avg_diff,
- b.median
- FROM (
- SELECT
- EXTRACT(YEAR FROM "created_on") AS year,
- EXTRACT(mon FROM "created_on") AS month,
- EXTRACT(dayofyear FROM "created_on") AS doy,
- COUNT(*) AS cnt,
- AVG("value") AS avgv
- FROM mydata4
- GROUP BY
- EXTRACT(YEAR FROM "created_on"),
- EXTRACT(mon FROM "created_on"),
- EXTRACT(dayofyear FROM "created_on")
- ORDER BY
- EXTRACT(YEAR FROM "created_on"),
- EXTRACT(mon FROM "created_on"),
- EXTRACT(dayofyear FROM "created_on")
- ) a
- LEFT JOIN (
- SELECT
- tmp.year2,tmp.month2,
- MEDIAN(tmp.cnt) AS median
- FROM (
- SELECT
- EXTRACT(YEAR FROM "created_on") AS year2,
- EXTRACT(mon FROM "created_on") AS month2,
- EXTRACT(dayofyear FROM "created_on") AS doy2,
- COUNT(*) AS cnt
- FROM mydata4
- GROUP BY 1,2,3
- ) tmp
- GROUP BY 1,2
- ) b ON b.month2 = a.month AND b.year2 = a.year
- WHERE a.cnt > b.median ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement