**Данные:** Таблица `friend_requests` социальной сети с заявками в друзья:
[см. код в задании]
**Задание:** Рассчитайте ежедневный acceptance rate за последние 30 дней:
1. Количество отправленных заявок по дням
2. Количество принятых (из отправленных в этот день, вне зависимости от даты ответа)
3. Acceptance rate в процентах
4. Среднее время ответа (от `sent_at` до `responded_at`) в часах для принятых заявок
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE friend_requests (
id SERIAL PRIMARY KEY,
sender_id INT NOT NULL,
receiver_id INT NOT NULL,
status VARCHAR(20) NOT NULL, -- 'pending', 'accepted', 'rejected'
sent_at TIMESTAMP NOT NULL,
responded_at TIMESTAMP
);
агрегация по датам CASE WHEN конверсия NULLIF
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: агрегация по датам, CASE WHEN, конверсия, NULLIF.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания