Найти в Дзене

Задача # 2. Разбор задачи по SQL: Вывод названий всех авиакомпаний

Оглавление

SQL — один из ключевых навыков для аналитиков, разработчиков и инженеров данных. На собеседованиях часто дают практические задачи для проверки понимания языка. Разберём типовые задачи и их решения.

Предыдущее задание:

Следующее задание:

Задача 2. Вывод названий всех авиакомпаний

Условие задачи

Необходимо вывести названия всех авиакомпаний. Результирующая таблица должна содержать одно поле: name

Анализ структуры базы данных

В задаче упоминаются 4 таблицы:

-2
  1. Trip — расписание рейсов
  2. Company — компании, осуществляющие авиаперелёты
  3. Pass_in_trip — список купленных билетов
  4. Passenger — пассажиры, купившие билеты

Нам известно, что поля с пометкой 🔑 являются первичными ключами (Primary Key, PK). Первичный ключ — это специальный столбец таблицы, который уникально идентифицирует каждую запись.

Определение нужной таблицы

Для решения задачи нам нужно вывести названия авиакомпаний. Исходя из описания таблиц:

  • Таблица Company явно содержит информацию о компаниях, осуществляющих авиаперелёты
  • Таблица Trip содержит расписание рейсов, но названия компаний там могут быть представлены через идентификаторы (внешние ключи)
  • Таблицы Pass_in_trip и Passenger содержат информацию о пассажирах и их билетах и не относятся к нашей задаче

Таким образом, нам нужна таблица Company, которая должна содержать поле с названием компании.

Формирование SQL-запроса

Самый простой запрос для получения всех названий компаний из таблицы Company:

SELECT name FROM Company;
-3

Этот запрос:

  1. Выбирает данные из таблицы Company
  2. Возвращает только столбец name
  3. Не содержит условий фильтрации, поэтому вернет все записи из таблицы

Проверка возможных нюансов

Хотя задача выглядит простой, стоит рассмотреть несколько аспектов:

  1. Уникальность записей: если в таблице могут быть дубликаты названий компаний, может потребоваться DISTINCT
  2. Сортировка: если нужен определенный порядок вывода, можно добавить ORDER BY
  3. Название столбца: убедимся, что столбец с названием компании действительно называется name

Модифицированный запрос с учетом этих аспектов:

SELECT DISTINCT name FROM Company ORDER BY name;
-4

Заключение

Для решения задачи достаточно простого SELECT-запроса к таблице компаний. В более сложных случаях может потребоваться соединение таблиц, но в данном условии это не нужно.

🔑 Итоговое решение:

SELECT name FROM Company;
-5