SQL код скопирован в буфер обмена

SQLtest: задачи по SQL

Пройдите тест на знание SQL, научитесь составлять эффективные SQL запросы и решать задачи по SQL, подготовьтесь к собеседованиям. Наши задания по SQL подходят как новичкам, так и опытным специалистам.
EN
Задание 31:
Для каждого из аэропортов найдите среднюю заполняемость рейсов в августе 2017 года (согласно дате фактического вылета) для бизнес и эконом класса.
Выведите результат в две колонки departure_airport - код аэропорта вылета, average_business_occupancy - средняя заполняемость мест бизнесс-класса в процентах округлённая до двух десятичных знаков, average_economy_occupancy - средняя заполняемость мест эконом-класса . 
Отсортируйте результат по коду аэропорта вылета.

Напишите свой запрос в поле ниже и нажмите кнопку «Проверить!»

Для написания используйте синтаксис PostgreSQL. Описания таблиц приведены в правой панели.

Откройте для себя более 260 уникальных заданий.

Выполните вход для сохранения вашего прогресса.

База данных Bookings (PostgreSQL)

Предметной областью этой базы данных являются рейсы авиакомпаний через различные аэропорты.

ER диаграмма базы данных Bookings

База данных Bookings содержит 8 таблиц:

  • aircrafts_data - таблица самолетов.
  • airports_data - таблица аэропортов.
  • boarding_passes - таблица посадочных талонов.
  • bookings - таблица бронирований.
  • flights - таблица рейсов.
  • seats - таблица мест в самолетах.
  • ticket_flights - таблица связей билетов с рейсами.
  • tickets - таблица билетов.
PostgreSQL Основы языка SQL : учебное пособие
Моргунов Евгений Павлович: PostgreSQL Основы языка SQL.
Учебно-практическое пособие охватывает первую, базовую, часть учебного курса по языку SQL, созданного при участии российской компании Postgres Professional. Учебный материал излагается в расчете на использование СУБД PostgreSQL.

Таблица aircrafts_data

Колонки:
  • aircraft_code – Уникальный код для каждого самолета.
  • model — Название модели самолета на английском и русском языках в формате JSON.
  • range – Дальность полета самолета в километрах.
aircraft_codemodelrange
1773{"en": "Boeing 777-300", "ru": "Боинг 777-300"}11100
Индексы:
  • PRIMARY KEY, btree (aircraft_code)

Таблица airports_data

Колонки:
  • airport_code – Уникальный код для каждого аэропорта.
  • airport_name — Название аэропорта на английском и русском языках в формате JSON.
  • city — Город аэропорта на английском и русском языках в формате JSON.
  • coordinates – Координаты аэропорта в виде POINT(долгота, широта).
  • timezone – Название часового пояса аэропорта.
airport_codeairport_namecitycoordinatestimezone
1YKS{"en": "Yakutsk Airport", "ru": "Якутск"}{"en": "Yakutsk", "ru": "Якутск"}(129.77099609375,62.0932998657227)Asia/Yakutsk
Индексы:
  • PRIMARY KEY, btree (airport_code)

Таблица boarding_passes

Колонки:
  • ticket_no - Номер билета.
  • flight_id - Идентификатор рейса.
  • boarding_no - Номер посадочного талона.
  • seat_no - Номер места.
ticket_noflight_idboarding_noseat_no
100054352123513062512D
Индексы:
  • PRIMARY KEY, btree (ticket_no, flight_id)
  • UNIQUE CONSTRAINT, btree (flight_id, boarding_no)
  • UNIQUE CONSTRAINT, btree (flight_id, seat_no)
Ограничения внешнего ключа:
  • FOREIGN KEY (ticket_no, flight_id) REFERENCES ticket_flights(ticket_no, flight_id)

Таблица bookings

Колонки:
  • book_ref – Номер бронирования.
  • book_date – Дата бронирования.
  • total_amount – Общая стоимость бронирования.
book_refbook_datetotal_amount
100000F2017-07-05 00:12:00+00265700.00
Индексы:
  • PRIMARY KEY, btree (book_ref)

Таблица flights

Колонки:
  • flight_id – Идентификатор рейса.
  • flight_no – Номер рейса.
  • scheduled_departure – Запланированное время отправления.
  • scheduled_arrival – Запланированное время прибытия.
  • departure_airport – Аэропорт вылета.
  • arrival_airport – Аэропорт прибытия.
  • status – Статус рейса.
  • aircraft_code – Код самолета, IATA.
  • actual_departure – Фактическое время отправления.
  • actual_arrival – Фактическое время прибытия.
flight_idflight_noscheduled_departurescheduled_arrivaldeparture_airportarrival_airportstatusaircraft_codeactual_departureactual_arrival
11185PG01342017-09-10 06:50:00+002017-09-10 11:55:00+00DMEBTKScheduled319
Индексы:
  • PRIMARY KEY, btree (flight_id)
  • UNIQUE CONSTRAINT, btree (flight_no, scheduled_departure)

Таблица seats

Колонки:
  • aircraft_code – Код самолета, IATA.
  • seat_no – Номер места.
  • fare_conditions – Класс путешествия.
aircraft_codeseat_nofare_conditions
13192ABusiness
Индексы:
  • PRIMARY KEY, btree (aircraft_code, seat_no)
Ограничения внешнего ключа:
  • FOREIGN KEY (aircraft_code) REFERENCES aircrafts(aircraft_code) ON DELETE CASCADE

Таблица ticket_flights

Колонки:
  • ticket_no – Номер билета.
  • flight_id – Идентификатор рейса.
  • fare_conditions – Класс путешествия.
  • сумма – Стоимость поездки.
ticket_noflight_idfare_conditionsamount
1000543215977630625Business42100.00
Индексы:
  • PRIMARY KEY, btree (ticket_no, flight_id)
Ограничения внешнего ключа:
  • FOREIGN KEY (flight_id) REFERENCES flights(flight_id)
  • FOREIGN KEY (ticket_no) REFERENCES tickets(ticket_no)

Таблица tickets

Колонки:
  • ticket_no – Номер билета.
  • book_ref – Номер бронирования.
  • passenger_id – Идентификатор пассажира.
  • passenger_name – Имя пассажира.
  • contact_data – Контактная информация пассажира.
ticket_nobook_refpassenger_idpassenger_namecontact_data
1000543200098706B0468149 604011VALERIY TIKHONOV{"phone": "+70127117011"}
Индексы:
  • PRIMARY KEY, btree (ticket_no)
Ограничения внешнего ключа:
  • FOREIGN KEY (book_ref) REFERENCES bookings(book_ref)