The practice data
Every lesson queries Brightdesk, a made-up software company, from January to June 2026. Think of it as a workbook with seven sheets. Nothing here is real.
customers 420 rows · one row per customer
Everyone who signed up: name, country, signup date, and how they found us (acquisition_channel).
Columns: id, name, email, country, signup_date, acquisition_channel
| id | name | country | signup_date | acquisition_channel | |
|---|---|---|---|---|---|
| 1 | Kavya Haddad | kavya.haddad334@example.com | United States | 2026-01-01 | social |
| 2 | Ben Kim | ben.kim404@example.com | India | 2026-01-01 | partner |
| 3 | Kavya Kim | kavya.kim283@example.com | India | 2026-01-02 | organic_search |
| 4 | Nikhil Tanaka | nikhil.tanaka266@example.com | Nigeria | 2026-01-05 | referral |
| 5 | Elena Nguyen | elena.nguyen194@example.com | United Kingdom | 2026-01-06 | social |
subscriptions 299 rows · one row per paid plan
Who pays and how much each month (mrr). cancelled_at is empty while the plan is active. An upgrade ends one row and starts another.
Columns: id, customer_id, plan, mrr, started_at, cancelled_at
| id | customer_id | plan | mrr | started_at | cancelled_at |
|---|---|---|---|---|---|
| 1 | 3 | pro | 79 | 2026-01-03 | empty |
| 2 | 5 | pro | 79 | 2026-01-11 | empty |
| 3 | 6 | pro | 79 | 2026-01-10 | 2026-03-11 |
| 4 | 7 | pro | 79 | 2026-01-17 | empty |
| 5 | 10 | starter | 29 | 2026-01-21 | empty |
events 4914 rows · one row per thing someone did
Product usage: signed_up, login, created_report, shared_report, invited_teammate, with the date it happened.
Columns: id, customer_id, event_name, event_date
| id | customer_id | event_name | event_date |
|---|---|---|---|
| 1 | 1 | signed_up | 2026-01-01 |
| 2 | 2 | signed_up | 2026-01-01 |
| 3 | 3 | signed_up | 2026-01-02 |
| 4 | 2 | login | 2026-01-05 |
| 5 | 3 | login | 2026-01-05 |
orders 600 rows · one row per order
A small online store: what was bought (product_id), how many, when, and in which region.
Columns: id, order_date, customer_id, product_id, quantity, region
| id | order_date | customer_id | product_id | quantity | region |
|---|---|---|---|---|---|
| 1 | 2026-01-01 | 369 | 1 | 1 | Latin America |
| 2 | 2026-01-01 | 268 | 1 | 3 | North America |
| 3 | 2026-01-01 | 110 | 2 | 1 | Latin America |
| 4 | 2026-01-02 | 118 | 2 | 2 | Europe |
| 5 | 2026-01-02 | 323 | 1 | 4 | Asia Pacific |
products 8 rows · a lookup table
Eight products with their category and unit_price. Orders point at it by product_id.
Columns: id, name, category, unit_price
| id | name | category | unit_price |
|---|---|---|---|
| 1 | Desk Lamp | Office | 39 |
| 2 | Standing Desk | Furniture | 449 |
| 3 | Ergo Chair | Furniture | 329 |
| 4 | Monitor Arm | Office | 89 |
| 5 | Notebook Pack | Stationery | 12 |
campaigns 24 rows · one row per channel per month
Marketing spend per acquisition channel per month (month looks like 2026-03).
Columns: id, month, channel, spend
| id | month | channel | spend |
|---|---|---|---|
| 1 | 2026-01 | paid_search | 3580 |
| 2 | 2026-01 | social | 2420 |
| 3 | 2026-01 | partner | 1420 |
| 4 | 2026-01 | referral | 490 |
| 5 | 2026-02 | paid_search | 3640 |
tickets 520 rows · one row per support ticket
Support work: opened_at, closed_at (empty if still open), priority and the agent who handled it.
Columns: id, customer_id, opened_at, closed_at, priority, agent
| id | customer_id | opened_at | closed_at | priority | agent |
|---|---|---|---|---|---|
| 1 | 2 | 2026-01-18 16:00 | 2026-01-18 21:48 | normal | Diego |
| 2 | 1 | 2026-01-19 20:00 | 2026-01-22 14:04 | low | Diego |
| 3 | 11 | 2026-01-28 03:00 | 2026-01-30 17:45 | low | Diego |
| 4 | 46 | 2026-01-31 11:00 | 2026-02-02 10:53 | low | Chloe |
| 5 | 6 | 2026-01-31 22:00 | 2026-02-03 00:11 | low | Diego |