В purchases — покупки в магазине: пользователь, товар, категория (одежда, техника, книги…) и дата event_date.
Выведите покупки категории одежда и к каждой добавьте first_purchase_date — дату самой первой покупки пользователя в любой категории — и флаг is_2023: 1 для покупок 2023 года, 0 — для более ранних, NULL — для поздних, их флаг не описывает.
Верните user_id, item_id, event_date, first_purchase_date, is_2023, порядок — user_id, event_date, item_id.
В работе: Подготовка выборки для анализа: пришёл ли покупатель одежды в магазин ради неё или раньше брал другое.
Таблицы
purchases — одна строка — одна покупка товара
| Колонка | Тип | Что значит |
|---|---|---|
purchase_id | int | ключ |
user_id | int | пользователь |
item_id | int | товар |
category | text | категория |
event_date | date | дата покупки |
Пример: данные
purchases · 6 строк
| purchase_id | user_id | item_id | category | event_date |
|---|---|---|---|---|
| 1 | 501 | 9001 | техника | 2022-11-28 |
| 2 | 501 | 7002 | одежда | 2023-03-08 |
| 3 | 501 | 7010 | одежда | 2024-01-15 |
| 4 | 502 | 7002 | одежда | 2022-12-31 |
| 5 | 502 | 9100 | книги | 2023-01-01 |
| 6 | 503 | 8800 | техника | 2023-06-01 |
Ожидаемый ответ
| user_id | item_id | event_date | first_purchase_date | is_2023 |
|---|---|---|---|---|
| 501 | 7002 | 2023-03-08 | 2022-11-28 | 1 |
| 501 | 7010 | 2024-01-15 | 2022-11-28 | NULL |
| 502 | 7002 | 2022-12-31 | 2022-12-31 | 0 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
user_id, item_id, event_date, first_purchase_date, is_2023
Источник: тестовое стажёра-продуктового аналитика во ВКонтакте, сборник No Data No Growth. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.