Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Rank Users by Revenue

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

Your question is Rank Users by Revenue. 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

EverC needs a regional leaderboard for users based on revenue recorded across its platform. Write a PostgreSQL query that calculates each user's total revenue and assigns a position within their region.

Include revenue adjustments in each user's total. Users whose total revenue is zero, negative, or not available should not appear in the leaderboard.

Output

  1. One row per qualifying user, with columns region, user_id, user_name, total_revenue, and revenue_rank.
  2. Include only users whose total revenue is positive.
  3. Rank users separately within each region, with the highest total revenue first.
  4. Resolve equal totals by ascending user_id so the output is deterministic.
  5. Order the final rows by region, then revenue_rank, then user_id.

Schema

users
ColumnTypeDescription
user_idPKINTPrimary key for the user
user_nameVARCHAR(100)User display name
regionVARCHAR(50)User's regional market
user_revenue
ColumnTypeDescription
revenue_idPKINTPrimary key for the revenue event
user_idINTUser associated with the revenue event
revenue_dateDATEDate the revenue was recorded
amountDECIMAL(10,2)Revenue amount, including adjustments
sourceVARCHAR(50)Revenue source label
Tablesusersuser_revenue
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results