Reviewed by Aditya Kumar · Last reviewed 2026-03-24
**SQL**: SELECT user_id, AVG(duration) AS avg_session_duration FROM (SELECT user_id, session_id, MAX(ts) - MIN(ts) AS duration FROM events GROUP BY user_id, session_id) t GROUP BY user_id. **Logic**: Inner query computes per-session duration; outer averages per user....
Pro-Move: 'We exclude sessions with 1 event and cap at 24hr—bots and errors skewed our early metrics.' Red Flag: Not defining session—need session_id or timeout logic.
SQL: SELECT user_id, AVG(duration) AS avg_session_duration FROM (SELECT user_id, session_id, MAX(ts) - MIN(ts) AS duration FROM events GROUP BY user_id, session_id) t GROUP BY user_id. Logic: Inner query computes per-session duration; outer averages per user. Best practice: Handle single-event sessions (duration 0); consider excluding bots.
Pro-Move: 'We exclude sessions with 1 event and cap at 24hr—bots and errors skewed our early metrics.' Red Flag: Not defining session—need session_id or timeout logic.
According to DataEngPrep.tech, this is one of the most frequently asked General/Other interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.