Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started

SQL for Top Customers

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

Your question is SQL for Top Customers. 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

Business Context

Coalition Greenwich wants to identify its highest-revenue institutional customers for the most recently completed reporting quarter. Assume the reporting date is April 15, 2025, so the last completed calendar quarter is January 1 through March 31, 2025.

Task

Write a PostgreSQL query that returns the top 10 customers by completed-order revenue during Q1 2025.

Requirements

  1. Join customers to orders using customer_id.
  2. Include only orders with status = 'completed' and an order_date from 2025-01-01 inclusive through 2025-04-01 exclusive.
  3. Aggregate revenue per customer, sort from highest to lowest revenue, and return at most 10 customers. Use customer_id as a deterministic tie-breaker.

Schema

customers
ColumnTypeDescription
customer_idPKINTEGERUnique customer identifier
customer_nameVARCHAR(120)Institutional customer name
regionVARCHAR(40)Customer operating region
orders
ColumnTypeDescription
order_idPKINTEGERUnique order identifier
customer_idINTEGERCustomer associated with the order
order_dateDATEDate the order was placed
statusVARCHAR(20)Order lifecycle status
revenueNUMERIC(12,2)Revenue attributed to the order
Tablescustomersorders
Your solutionPostgreSQL
You need to log in / sign up to run or submit.
Run a query to see results