Войти Регистрация
Data base

7. Воронка кредитных заявок по каналам

Средняя

В app_events пишется каждый переход заявки на кредитную карту: stage = 'подана', 'одобрена' или 'выдана'. Конвейер иногда пишет одно и то же событие дважды, а клиент может переподать заявку под тем же app_id.

Для каждого канала (channel) выведите число разных заявок на каждом шаге: submitted, approved, issued, и issue_pct — процент выданных от поданных с 1 знаком. Порядок — по channel.

В работе: Еженедельный разбор конверсии: где заявки теряются — на скоринге или на встрече с курьером.

Таблицы

app_events — события по заявкам; канал у заявки один

КолонкаТипЧто значит
event_idintключ
app_idintзаявка
channeltextприложение, сайт, офис, партнёр
stagetextподана, одобрена, выдана
event_attimestampвремя

Пример: данные

app_events · 9 строк

event_idapp_idchannelstageevent_at
110приложениеподана2025-09-01T10:00:00
210приложениеодобрена2025-09-01T10:02:00
310приложениевыдана2025-09-03T15:00:00
411приложениеподана2025-09-01T11:00:00
511приложениеодобрена2025-09-01T11:05:00
612приложениеподана2025-09-02T09:00:00
720офисподана2025-09-02T12:00:00
820офисодобрена2025-09-02T12:30:00
920офисвыдана2025-09-02T13:00:00

Ожидаемый ответ

channelsubmittedapprovedissuedissue_pct
офис111100
приложение32133,3
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
channel, submitted, approved, issued, issue_pct
воронкаусловная агрегацияDISTINCTGROUP BY

Источник: на данных кредитного конвейера: заявка, одобрение, выдача. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.