**Контекст:** Клиника анализирует время ожидания пациентов от записи до фактического начала приёма. Нужно понять, в каких специальностях ожидание наибольшее, чтобы скорректировать расписание.
**Данные:**
[см. код в задании]
**Задание:**
1. Для каждой специальности врачей рассчитайте среднее время ожидания в днях (от `scheduled_at` до `started_at`)
2. Учитывайте только приёмы со статусом `completed` и ненулевым `started_at`
3. Выведите специальность, количество приёмов, среднее ожидание (округлить до 1 знака) и максимальное ожидание
4. Отсортируйте по среднему времени ожидания по убыванию
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE appointments (
id SERIAL PRIMARY KEY,
patient_id INT NOT NULL,
doctor_id INT NOT NULL,
specialty VARCHAR(100) NOT NULL, -- 'терапевт', 'кардиолог', 'невролог', ...
scheduled_at TIMESTAMP NOT NULL, -- время записи (когда пациент записался)
started_at TIMESTAMP, -- фактическое начало приёма (NULL если не состоялся)
status VARCHAR(20) NOT NULL -- 'completed', 'cancelled', 'no_show'
);
AVG GROUP BY EXTRACT INTERVAL агрегация
Это задание для уровня Junior. Подходит для начинающих аналитиков, проверяет базовые знания SQL/Python/статистики.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: AVG, GROUP BY, EXTRACT, INTERVAL, агрегация.
На реальном собеседовании на подобную задачу отводится 5-10 минут — проверяется скорость и базовая грамотность. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания