이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 활동이 발생한 시간입니다. |
| user_id | Utf8 | 안정적인 사용자 식별자. |
| event_name | Utf8 | 제품 이벤트 이름. |
쿼리 복사
WITH first_activity AS (
SELECT
user_id,
date_trunc('week', MIN(timestamp_utc)) AS cohort_week
FROM product_events
WHERE event_name = 'first_value_completed'
GROUP BY user_id
),
weekly_activity AS (
SELECT DISTINCT
user_id,
date_trunc('week', timestamp_utc) AS activity_week
FROM product_events
WHERE event_name = 'core_feature_used'
),
cohort_activity AS (
SELECT
f.cohort_week,
(date_part('epoch', a.activity_week)
- date_part('epoch', f.cohort_week)) / 604800 AS week_number,
COUNT(DISTINCT a.user_id) AS retained_users
FROM first_activity f
JOIN weekly_activity a ON f.user_id = a.user_id
WHERE a.activity_week >= f.cohort_week
GROUP BY
f.cohort_week,
(date_part('epoch', a.activity_week)
- date_part('epoch', f.cohort_week)) / 604800
),
cohort_sizes AS (
SELECT cohort_week, COUNT(*) AS cohort_size
FROM first_activity
GROUP BY cohort_week
)
SELECT
c.cohort_week,
c.week_number,
c.retained_users,
s.cohort_size,
100.0 * c.retained_users / NULLIF(s.cohort_size, 0) AS retention_pct
FROM cohort_activity c
JOIN cohort_sizes s ON c.cohort_week = s.cohort_week
WHERE c.week_number BETWEEN 0 AND 12
ORDER BY c.cohort_week, c.week_number;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
활성화 코호트별 주간 유지율
이전 집단은 1주차에 사용자의 절반을 유지했습니다. 새로운 집단은 아직 1주차 비교를 할 만큼 충분히 성숙하지 않았습니다.
주 0
100%
코호트 2026-07-20
주 1
50%
코호트 2026-07-20
주 0
100%
코호트 2026-07-27
| cohort_week | week_number | retained_users | cohort_size | retention_pct |
|---|---|---|---|---|
| 2026-07-20 | 0 | 4 | 4 | 100 |
| 2026-07-20 | 1 | 2 | 4 | 50 |
| 2026-07-27 | 0 | 3 | 3 | 100 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1첫 번째 CTE는 가치 마일스톤을 처음 완료한 주부터 각 사용자의 코호트를 정의합니다.
- 2주간 활동은 중복 제거되므로 한 주의 여러 이벤트가 유지된 사용자 한 명으로 계산됩니다.
- 3타임스탬프 차이는 일 단위에서 코호트 간에 비교할 수 있는 주 단위 오프셋으로 변환됩니다.
결정해야 할 극단적인 경우
- 다양한 연령대의 집단을 비교할 때 불완전한 향후 주를 제외하세요.
- 페이지 보기가 아닌 의미 있는 활동에서 반환 동작을 정의합니다.
- UTC 주 경계는 비즈니스 시간대와 일치하지 않을 수 있습니다. 선택한 경계를 문서화하십시오.
추천 대시보드
- 히트맵 스타일 테이블: cohort_week by week_number
- 꺾은선형 차트: retention_pct by week_number 분할 by cohort_week
- 통계: 성숙한 집단의 4주차 유지율
레시피를 활용해 보세요
관련 계측 및 가이드
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.