The busiest customer

subqueries

The busiest customer

Amazon SQL Interview Question

Amazon's marketing team wants to feature its most active customer in a customer story.

Find the name of the customer who has placed the most orders. Count every order, whatever its status. If several customers are tied for the most orders, return all of them.

Asked of

  • Data Analyst
  • Product Analyst
  • Data Scientist

ordersTable35 rows

Column NameType
order_idBIGINT
customer_idBIGINT
order_dateDATE
statusVARCHAR
amountDOUBLE

customersTable10 rows

Column NameType
customer_idBIGINT
nameVARCHAR
countryVARCHAR
segmentVARCHAR
signup_dateDATE

ordersExample Input

order_idcustomer_idorder_datestatusamount
100112024-01-05completed120.5
100222024-01-07completed2400
100312024-01-11completed89.99
100432024-01-15canceled45
100542024-01-18completed610.75
100622024-01-22completed1850.25
100752024-01-29completed3200
100812024-02-02refunded75
100962024-02-06completed55.4
101032024-02-09completed132.6

customersExample Input

customer_idnamecountrysegmentsignup_date
1Priya SharmaIndiaconsumer2023-01-14
2Marcus WebbUnited Statesenterprise2023-02-03
3Ana SousaBrazilconsumer2023-02-27
4Liam O'ConnorIrelandsmall_business2023-03-15
5Yuki TanakaJapanenterprise2023-04-02
6Fatima Al-RashidUnited Arab Emiratesconsumer2023-05-21
7Daniel OkaforNigeriasmall_business2023-06-08

Example Output

name
Priya Sharma

Explanation

Priya Sharma placed three orders in the example, including one that was refunded. Every other customer placed two orders or fewer, so Priya Sharma is the only name returned.

The example above is a small slice of the data. Your query runs against the full tables.