**Данные:** Таблица `employees` HR-отдела:
[см. код в задании]
**Задание:** Для каждого отдела рассчитайте:
1. Количество активных сотрудников
2. Среднюю зарплату (`AVG`)
3. Медиану зарплаты (50-й перцентиль)
4. 25-й перцентиль (Q1)
5. 75-й перцентиль (Q3)
6. Межквартильный размах (IQR = Q3 − Q1)
7. Коэффициент вариации (стандартное отклонение / среднее × 100)
**Условия:**
1. Только активные сотрудники (`is_active = TRUE`)
2. Только отделы с >= 5 сотрудниками
3. Сортировка по медиане по убыванию
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
name VARCHAR(150) NOT NULL,
department VARCHAR(100) NOT NULL,
position VARCHAR(100) NOT NULL,
salary NUMERIC(10,2) NOT NULL,
hire_date DATE NOT NULL,
is_active BOOLEAN NOT NULL DEFAULT TRUE
);
PERCENTILE_CONT PERCENTILE_DISC медиана статистика WITHIN GROUP
Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «SQL» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: PERCENTILE_CONT, PERCENTILE_DISC, медиана, статистика, WITHIN GROUP.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 425 SQL задач в песочнице с автопроверкой кода, конспекты SQL для аналитика, AI мок-собеседование с разбором ваших ответов.
← Все задания