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

226. Вторые пилоты с тремя рейсами в Шереметьево

Средняя

pilots — пилоты, planes — самолёты, flights — рейсы. У рейса два пилота: командир first_pilot_id и второй пилот second_pilot_id. В planes.cargo_flg 1 означает грузовой борт, 0 — пассажирский.

Найдите пилотов, которые в августе 2025 года ровно 3 раза летали в Шереметьево (destination = 'Шереметьево') вторым пилотом на пассажирских самолётах. Рейсы, где он был командиром, не считаются.

Верните pilot_id, name, порядок — по pilot_id.

В работе: Планирование экипажей: кто уже набрал норму московских рейсов вторым пилотом.

Таблицы

pilots — пилот

КолонкаТипЧто значит
pilot_idintключ
nametextимя
ageintвозраст

planes — самолёт

КолонкаТипЧто значит
plane_idintключ
capacityintмест
cargo_flgint1 — грузовой, 0 — пассажирский

flights — рейс

КолонкаТипЧто значит
flight_idintключ
flight_dtdateдата
first_pilot_idintкомандир
second_pilot_idintвторой пилот
plane_idintсамолёт
destinationtextаэропорт прилёта

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

pilots · 4 строки

pilot_idnameage
1Громов Павел51
2Чкалова Ирина34
3Лебедев Роман29
4Нестерова Ева38

planes · 2 строки

plane_idcapacitycargo_flg
11800
2401

flights · 9 строк

flight_idflight_dtfirst_pilot_idsecond_pilot_idplane_iddestination
12025-08-02121Шереметьево
22025-08-09121Шереметьево
32025-08-20121Шереметьево
42025-08-03131Шереметьево
52025-08-04131Шереметьево
62025-08-05132Шереметьево
72025-08-06141Шереметьево
82025-08-07141Шереметьево
92025-08-08431Шереметьево

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

pilot_idname
2Чкалова Ирина
3Лебедев Роман
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
pilot_id, name
JOINGROUP BYHAVINGдаты

Источник: тестовое Тинькофф на системного аналитика, репозиторий кандидата на GitHub, 2022. Условие пересказано своими словами.