Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Rank Top Users by Spend

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

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

Hirebeat wants to identify its highest-spending users in each country. Write a PostgreSQL query that calculates each user's total purchase spend, ranks users within their country, and returns the top three users per country.

Requirements

  1. Join users to purchases and calculate total spend per user.
  2. Include users with no purchases, treating their total spend as 0.
  3. Use a window function to rank users independently within each country.
  4. Return at most three users per country, ordered by country and descending total spend. Break spending ties with the smaller user_id.

Schema

users
ColumnTypeDescription
user_idPKINTEGERUnique Hirebeat user identifier
user_nameVARCHAR(100)User display name
countryVARCHAR(50)User country
purchases
ColumnTypeDescription
purchase_idPKINTEGERUnique purchase identifier
user_idINTEGERIdentifier of the purchasing user
amountNUMERIC(10,2)Purchase amount
Tablesuserspurchases
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results