Find the Customer Who Placed the Most Orders

SQL coding challenge · Difficulty: easy · +50 XP

Problem

Sales competition: The customer who has placed the most orders wins a monthly gift. Find the single top customer. If there is a tie, return all tied customers.

Tables

Table: customers

| customer_id | customer_name | status | register_date |
| --- | --- | --- | --- |
| 1 | Krishna | Active | 2024-05-01 |
| 2 | Parvati | Active | 2024-05-10 |
| 3 | Atul | Inactive | 2024-04-01 |
| 4 | Pinki | Active | 2024-05-20 |
| 5 | Sudheer | Active | 2024-04-01 |

Table: orders

| order_id | customer_id | order_date | order_amount |
| --- | --- | --- | --- |
| 101 | 1 | 2024-05-01 | 500 |
| 102 | 1 | 2024-05-05 | 800 |
| 103 | 1 | 2024-05-10 | 200 |
| 104 | 2 | 2024-05-02 | 1200 |
| 105 | 2 | 2024-05-08 | 600 |
| 106 | 3 | 2024-05-03 | 300 |
| 107 | 4 | 2024-05-04 | 200 |
| 108 | 4 | 2024-05-09 | 400 |
| 109 | 4 | 2024-05-11 | 700 |
| 110 | 4 | 2024-05-12 | 350 |
| 111 | 4 | 2024-05-13 | 450 |
| 112 | 4 | 2024-05-14 | 600 |
| 113 | 1 | 2024-06-05 | 1000 |
| 114 | 2 | 2024-06-10 | 900 |

Expected Output

| customer_id | customer_name | order_count |
| --- | --- | --- |
| 4 | Pinki | 6 |
  • Return: customer_id, customer_name, order_count
  • Only the top customer(s) — include ties
  • Hint: Use a subquery with MAX(order_count) or ORDER BY + LIMIT 1

Solve this challenge on PySpark.in