SQL interview question: sessionization from event gaps

HardTime intervals

Problem

Shared data rules

Rebuild user sessions from events of Sep 7–27, 2026. A gap of over 30 minutes between a user’s events starts a new session. For each platform and weekday of the session’s first event, count sessions and find average duration and events per session.

Formula

Example

Input: events
event_iduser_idevent_tsevent_nameplatformRow note
112026-09-14 10:00session_startandroid
212026-09-14 10:10add_to_cartandroid
312026-09-14 10:10add_to_cartandroid← duplicate of 2 — one event
412026-09-14 10:40session_startandroid← 30 min later — same session
512026-09-14 11:25add_to_cartandroid← 45 min later — new session
632026-09-06 23:50session_startios← Sep 6 — outside the period
732026-09-07 00:10add_to_cartios← Sep 7 — Monday
Output
platformweekdaysessionsavg_minutesavg_events
android12202
ios1101

User 1 has two Monday sessions: events 1–4 (40 min, 3 events) and event 5 (0 min, 1 event), 20 min and 2 events on average. Event 6 is outside the period, so user 3’s session is event 7 alone.

Output columns

weekday
weekday of the session start: 1 = Monday … 7 = Sunday

Notes

Solve it free

Your query runs on PostgreSQL in your browser. No sign-up needed.

Skills it tests

More interview questions

All questions