SQL Dojo Beta
Trampa

Aún no observable

Un resultado que no ha tenido tiempo de producirse es desconocido, no cero: las cohortes jóvenes y el periodo en curso parecen un desplome.

Cuando una métrica cuenta lo que ocurre en una ventana tras un evento (retención a 30 días, renovación, reembolso en 60 días), muestre solo las cohortes cuya ventana completa es anterior al final de los datos: CASE WHEN cohort_end + window <= as_of THEN … END, NULL en caso contrario. Lo mismo vale para una semana o un mes sin terminar al final de un gráfico.

WITH cohorts(cohort, users, retained) AS (VALUES
  (DATE '2026-04-01', 9955, 2031), (DATE '2026-05-01', 10392, 1985), (DATE '2026-06-01', 4817, 34))
SELECT cohort, users,
       CASE WHEN cohort + INTERVAL 1 MONTH + INTERVAL 35 DAY <= DATE '2026-07-01'
            THEN ROUND(100.0 * retained / users, 1) END AS retained_pct
FROM cohorts
ORDER BY cohort;
cohortusersretained_pct
2026-04-01995520.4
2026-05-0110392NULL
2026-06-014817NULL
Probarlo en Randori