The Traffic Calendar
Kindled's small support team is rostered against how busy the site is, and the rota is drawn a week at a time. The scheduler wants tracked activity totalled per calendar day for the first seven days that recorded anything, read in date order so the shape of the week is visible. Later days are next week's problem and should not appear.
events — one row per tracked action. user_id points at a row in users. event_type is one of signup, view_product, add_to_cart and purchase. event_date is the day the action happened. Nothing guarantees a person produces all four kinds, or any particular number of rows.
| id | user_id | event_type | event_date |
|---|---|---|---|
| 1 | 1 | signup | 2023-05-01 |
| 2 | 1 | view_product | 2023-05-01 |
| 3 | 1 | add_to_cart | 2023-05-02 |
| 4 | 1 | purchase | 2023-05-03 |
| 5 | 2 | signup | 2023-05-02 |
| 6 | 2 | view_product | 2023-05-02 |
| 7 | 3 | signup | 2023-05-03 |
| 8 | 3 | view_product | 2023-05-03 |
| 9 | 3 | add_to_cart | 2023-05-04 |
| 10 | 4 | signup | 2023-05-04 |
| 11 | 4 | view_product | 2023-05-05 |
| 12 | 4 | add_to_cart | 2023-05-05 |
| 13 | 4 | purchase | 2023-05-06 |
| 14 | 5 | signup | 2023-05-05 |
| 15 | 6 | signup | 2023-05-06 |
| 16 | 6 | view_product | 2023-05-06 |
| 17 | 7 | signup | 2023-05-07 |
| 18 | 7 | view_product | 2023-05-07 |
| 19 | 7 | add_to_cart | 2023-05-08 |
| 20 | 7 | purchase | 2023-05-09 |
| 21 | 8 | signup | 2023-05-08 |
The table already exists in the database — there is nothing to create or load.
Task: Write a query that returns at most seven rows, with columns event_date and n — the number of tracked actions on that day — covering the seven earliest days on which anything at all was recorded, oldest day first.
Example output — shape only, on invented days. The rows run oldest first, not busiest first:
| event_date | n |
|---|---|
| 2022-11-01 | 11 |
| 2022-11-02 | 14 |
| 2022-11-03 | 9 |
| 2022-11-04 | 12 |
| 2022-11-05 | 16 |
| 2022-11-06 | 10 |
| 2022-11-07 | 13 |
Sign in to solve this problem
Reading problems is free for everyone — solving them (Run, Submit, and tracking what you've solved) needs an account.
Sign in