Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Top Spenders Query

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

Your question is Top Spenders Query. 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

Ubisoft wants to identify the highest-spending players across its live games during a reporting period. Write a PostgreSQL query that ranks player spending and returns the top 5% based on purchases made from 2025-01-01 through 2025-03-31.

Requirements

  1. Include all players in the spend population, including players with no qualifying purchases.
  2. Sum only purchases within the specified timeframe, treating missing purchase amounts as zero.
  3. Calculate the 95th percentile of total player spend and return players whose spend is at or above that threshold.
  4. Return player_id, gamer_tag, and total_spent, ordered by spending descending and player ID ascending for deterministic results.

Schema

players
ColumnTypeDescription
player_idPKINTUnique player identifier
gamer_tagVARCHAR(50)Player display name
platformVARCHAR(20)Gaming platform
purchases
ColumnTypeDescription
purchase_idPKINTUnique purchase identifier
player_idINTPurchasing player identifier
purchased_atTIMESTAMPPurchase timestamp
amountNUMERIC(10,2)Purchase amount in USD
game_titleVARCHAR(80)Ubisoft game associated with the purchase
Tablesplayerspurchases
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results