Spaces:
Sleeping
Sleeping
File size: 1,078 Bytes
16decd8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | -- Mart: funnel conversion across the view -> add_to_cart -> checkout -> purchase steps.
-- Sessions are counted at the deepest step they reached, then we report the count
-- reaching each step and the step-over-step + overall conversion rates.
CREATE OR REPLACE TABLE marts.funnel_conversion AS
WITH session_depth AS (
SELECT session_id, max(funnel_step) AS max_step
FROM staging.stg_events
GROUP BY session_id
),
steps(step_name, step_index) AS (
VALUES ('view', 1), ('add_to_cart', 2), ('checkout', 3), ('purchase', 4)
),
reached AS (
SELECT
s.step_name,
s.step_index,
count(*) FILTER (WHERE d.max_step >= s.step_index) AS sessions
FROM steps s
CROSS JOIN session_depth d
GROUP BY s.step_name, s.step_index
)
SELECT
step_name,
step_index,
sessions,
CAST(sessions AS DOUBLE)
/ NULLIF(first_value(sessions) OVER (ORDER BY step_index), 0) AS pct_of_top,
CAST(sessions AS DOUBLE)
/ NULLIF(lag(sessions) OVER (ORDER BY step_index), 0) AS step_conversion
FROM reached
ORDER BY step_index;
|