Select Top Customers Using Transaction Data Filters
AmazonData Scientist · Technical ScreenLast updated
This question evaluates a candidate's ability to perform data aggregation, filtering, ranking, and deterministic tie-breaking on transactional datasets, assessing skills in Data Manipulation (SQL/Python).
transactions
+----+---------+------------+--------+ | id | user_id | order_date | amount | +----+---------+------------+--------+ | 1 | 101 | 2023-01-01 | 120.50 | | 2 | 102 | 2023-01-08 | 75.00 | | 3 | 101 | 2023-02-02 | 200.00 | | 4 | 103 | 2023-02-10 | 40.00 | | 5 | 104 | 2023-03-12 | 150.00 | +----+---------+------------+--------+
Scenario
Retail promotion targeting based on historical transaction data.
Question
Given a transactions table, select the customers who satisfy the provided campaign filters.
From those customers select exactly five with the highest total order count.
Explain how you would break ties if more than five customers meet the top-5 criterion.
Hints
Aggregate by customer, ORDER BY order_cnt DESC, LIMIT 5; add secondary sort (e.g., most recent order date or random) for deterministic tie-breaking.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.