В clients — клиенты и город из анкеты, в purchases — их покупки по карте: сумма, время и город магазина shop_city.
Для каждого города клиента посчитайте, у скольких клиентов была пятая покупка и какой у неё средний чек. Пятая — по времени purchased_at; если две покупки прошли в одну секунду, раньше та, у которой меньше purchase_id. Город берите из анкеты, а не город магазина.
Верните city, clients, avg_fifth_rub (округлить до копеек), порядок — по city. Города, где никто не дошёл до пятой покупки, не выводите.
В работе: Оценка привычки платить картой: как меняется чек, когда клиент уже освоился с продуктом.
Таблицы
clients — одна строка — один клиент
| Колонка | Тип | Что значит |
|---|---|---|
client_id | int | ключ |
full_name | text | имя |
city | text | город из анкеты |
purchases — одна строка — одна покупка по карте
| Колонка | Тип | Что значит |
|---|---|---|
purchase_id | int | ключ |
client_id | int | клиент |
amount_rub | numeric | сумма |
purchased_at | timestamp | время |
shop_city | text | город магазина |
Пример: данные
clients · 4 строки
| client_id | full_name | city |
|---|---|---|
| 1 | Алина Петрова | Москва |
| 2 | Рамиль Хасанов | Москва |
| 3 | Ольга Дьяченко | Казань |
| 4 | Игорь Смолин | Казань |
purchases · 19 строк
| purchase_id | client_id | amount_rub | purchased_at | shop_city |
|---|---|---|---|---|
| 11 | 1 | 1200 | 2025-02-01T10:00:00 | Москва |
| 12 | 1 | 800 | 2025-02-03T19:20:00 | Москва |
| 13 | 1 | 450 | 2025-02-05T08:15:00 | Москва |
| 14 | 1 | 3100 | 2025-02-09T13:00:00 | Москва |
| 15 | 1 | 2500 | 2025-02-14T21:40:00 | Сочи |
| 16 | 1 | 900 | 2025-02-20T12:00:00 | Москва |
| 21 | 2 | 640 | 2025-03-01T09:00:00 | Москва |
| 22 | 2 | 1500 | 2025-03-02T09:00:00 | Москва |
| 23 | 2 | 2300 | 2025-03-03T09:00:00 | Москва |
| 24 | 2 | 4100 | 2025-03-04T18:30:15 | Москва |
| 25 | 2 | 7400 | 2025-03-04T18:30:15 | Москва |
| 31 | 3 | 350 | 2025-04-01T11:00:00 | Казань |
| 32 | 3 | 520 | 2025-04-02T11:00:00 | Казань |
| 33 | 3 | 780 | 2025-04-03T11:00:00 | Казань |
| 34 | 3 | 1100 | 2025-04-04T11:00:00 | Казань |
| 35 | 3 | 1990 | 2025-04-05T11:00:00 | Казань |
| 41 | 4 | 5000 | 2025-04-10T15:00:00 | Казань |
| 42 | 4 | 6000 | 2025-04-11T15:00:00 | Казань |
| 43 | 4 | 7000 | 2025-04-12T15:00:00 | Казань |
Ожидаемый ответ
| city | clients | avg_fifth_rub |
|---|---|---|
| Казань | 1 | 1990 |
| Москва | 2 | 4950 |
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
city, clients, avg_fifth_rub
Источник: задача из тестового аналитика в Альфа-Банк, разбор IT Resume. Условие пересказано своими словами.
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.