Acceptance rate заявок в друзья по дням

Middle SQL Соцсети

Условие задания

**Данные:** Таблица `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

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Acceptance rate заявок в друзья по дням"?

Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: агрегация по датам, CASE WHEN, конверсия, NULLIF.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «SQL»?

На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.

← Все задания