Skip to content

Instantly share code, notes, and snippets.

@nuria
Created May 27, 2022 14:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nuria/8fef9b6ff910f8e505e5a4ff7de03d1f to your computer and use it in GitHub Desktop.
Save nuria/8fef9b6ff910f8e505e5a4ff7de03d1f to your computer and use it in GitHub Desktop.
28_day_running_percentile.sql
with base_data as (
select received_at, date_trunc('day', received_at)::date as end_date ,
date_add('day', -28, date_trunc('day', received_at))::date start_date, load_time
from outschool_com.performance_largest_contentful_paint
where
received_at > date_add('day',-90, sysdate::date)
and load_time > 0
and load_time < 60000
--order by md5('seed' || received_at)
),
date_array as (
select distinct end_date as event_date from base_data
)
select event_date,
(event_date - INTERVAL '28 day')::date AS window_start,
percentile_cont(0.75) within group (order by load_time)
from date_array d join base_data bd
on bd.received_at between d.event_date- INTERVAL '28 day' and d.event_date
group by 1,2
order by 1,2;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment