Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL for User Session Time

MediumSQL · PostgreSQL00:00
Practice interviewer
In session
5 left
00:00

Your question is SQL for User Session Time. Start with the requirements and the three tables on the right.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.

Problem

The Nielsen Digital Analytics team needs a session-level report showing engagement for each observed user. Write a PostgreSQL query that calculates each user's click rate across all of their events and derives the start and end timestamps for every session.

Requirements

  1. Return one row per session, including the user ID and user name.
  2. Calculate user_click_rate as click events divided by all recorded events for that user, rounded to four decimal places. Users or sessions with no events must have a rate of 0.
  3. Calculate session_start and session_end using the minimum and maximum event timestamps. Sessions with no events should retain NULL timestamps.
  4. Order the output by user_id and session_id.

Schema

users
ColumnTypeDescription
user_idPKINTEGERUnique Nielsen Digital Analytics user identifier
user_nameVARCHAR(80)User display name
sessions
ColumnTypeDescription
session_idPKINTEGERUnique session identifier
user_idINTEGERUser who initiated the session
session_events
ColumnTypeDescription
event_idPKINTEGERUnique event identifier
session_idINTEGERSession containing the event
event_typeVARCHAR(20)Recorded event type
event_tsTIMESTAMPTimestamp when the event occurred
Tablesuserssessionssession_events
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results