Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL Retention Query for Premium Users

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

Your question is SQL Retention Query for Premium Users. Start with the requirements and the two 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

GitLab wants to monitor whether Premium subscribers continue using GitLab in the following week. Login activity must be evaluated against the subscriber's tier at the time of each login.

Write a PostgreSQL query that calculates weekly retention for Premium users.

Requirements

  1. Convert each login timestamp to its ISO week start using DATE_TRUNC('week', ...).
  2. Include a user in a week only when the user had the premium tier at the time of the login.
  3. Deduplicate multiple logins by the same user within the same week.
  4. For each week, calculate the Premium users active in that week, the number who also logged in during the immediately following calendar week, and the retention rate as a percentage.
  5. Return one row per observed Premium activity week, ordered chronologically. Return NULL for the final week when no following week is available.

Schema

login_events
ColumnTypeDescription
event_idPKINTUnique login event identifier
user_idINTGitLab user identifier
login_atTIMESTAMPTimestamp when the user logged in
subscription_tiers
ColumnTypeDescription
subscription_idPKINTUnique subscription record identifier
user_idINTGitLab user identifier
tierVARCHAR(20)Subscription tier
valid_fromTIMESTAMPStart of the tier period
valid_toTIMESTAMPExclusive end of the tier period, or NULL for an active period
Tableslogin_eventssubscription_tiers
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results