Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Top 3 Customers Per Month With Ties

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

Your question is Top 3 Customers Per Month With Ties. Start with the requirements and the three 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

American Express wants a monthly view of its highest-spending cardmembers. Write a PostgreSQL query to find the top three spending customers by month during the most recent 12-month period.

Requirements

  1. Include only posted purchase transactions made with active American Express cards.
  2. Aggregate transaction amounts by customer and calendar month.
  3. Use a ranking window function so ties at third place are included. The result may contain more than three customers in a month.
  4. Return the month as YYYY-MM, customer details, total spending, and the customer rank.
  5. Sort by month ascending, total spending descending, and customer ID ascending for deterministic output.

Schema

customers
ColumnTypeDescription
customer_idPKINTUnique cardmember identifier
customer_nameVARCHAR(100)Cardmember name
cards
ColumnTypeDescription
card_idPKINTUnique American Express card identifier
customer_idINTCardmember who owns the card
card_statusVARCHAR(20)Current card status
card_transactions
ColumnTypeDescription
transaction_idPKINTUnique transaction identifier
card_idINTCard used for the transaction
transaction_tsTIMESTAMPTransaction timestamp
transaction_typeVARCHAR(20)Transaction classification
statusVARCHAR(20)Transaction processing status
amountNUMERIC(12,2)Transaction amount in dollars
Tablescustomerscardscard_transactions
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results