Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL for Good Users

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

Your question is SQL for Good Users. Start with the requirements and the one table 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

Taboola wants to identify highly engaged users of Taboola Ads Manager. A Good User is a user whose average number of sessions per observed week is at least 3. Calculate the average session duration for each Good User.

Write a PostgreSQL query using the sessions table.

Requirements

  1. Group sessions by userId and calendar week, where weeks begin on Monday.
  2. Calculate each user's average weekly session count across weeks in which that user had at least one session.
  3. Keep only users whose average weekly session count is at least 3.
  4. Return each qualifying userId and their average session duration across all recorded sessions.
  5. Ignore rows with a null userId or null data_timestamp. PostgreSQL's AVG should ignore null durations.
  6. Sort the output by userId in ascending order.

Schema

sessions
ColumnTypeDescription
IdPKINTEGERUnique session identifier
userIdINTEGERTaboola Ads Manager user identifier
durationINTEGERSession duration in seconds
data_timestampTIMESTAMPTimestamp when the session was recorded
Tablessessions
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results