Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

Top 10 Customers by Sales

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

Your question is Top 10 Customers by Sales. 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

HCL needs a sales ranking for customers using data from its commerce platform. Write a PostgreSQL query that identifies the top 10 customers by sales from completed orders.

Requirements

  1. Join customers, orders, and order_items to calculate sales as quantity * unit_price.
  2. Include only orders with status = 'completed'; treat a NULL unit price as zero.
  3. Aggregate sales per customer, return the top 10, and break equal-sales ties by ascending customer_id.

Schema

customers
ColumnTypeDescription
customer_idPKINTUnique customer identifier
customer_nameVARCHAR(100)Customer display name
orders
ColumnTypeDescription
order_idPKINTUnique order identifier
customer_idINTCustomer associated with the order
statusVARCHAR(20)Current order status
order_items
ColumnTypeDescription
order_item_idPKINTUnique order-line identifier
order_idINTOrder containing the item
quantityINTNumber of units purchased
unit_priceNUMERIC(10,2)Price per unit at purchase time
Tablescustomersordersorder_items
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results