Найти в Дзене

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

Оглавление

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

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

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

Задача 3. Вывести все рейсы, совершенные из Москвы

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

Требуется вывести все рейсы, которые были совершены из Москвы. Результирующая таблица должна содержать все поля таблицы рейсов (используется звездочка *).

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

Исходя из предыдущей задачи, мы знаем, что в базе имеются таблицы:

-2
  • Trip — основная таблица с расписанием рейсов
  • Company — авиакомпании
  • Pass_in_trip — информация о билетах
  • Passenger — данные пассажиров

Для текущей задачи нам понадобится только таблица Trip, так как она содержит информацию о маршрутах рейсов.

Определение критериев выборки

Нам нужно выбрать рейсы, которые:

  1. Отправлялись из Москвы
  2. В таблице должен быть столбец, указывающий город отправления (вероятно, town_from)

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

Базовый запрос для решения задачи:

SELECT * FROM Trip
WHERE town_from = 'Moscow';
-3

Этот запрос:

  1. Выбирает все столбцы (*) из таблицы Trip
  2. Фильтрует только те рейсы, где город отправления равен 'Moscow'

Возможные вариации и уточнения

  1. Чувствительность к регистру: В некоторых СУБД сравнение строк может быть регистрозависимым. Для надежности можно использовать:
SELECT *
FROM Trip
WHERE LOWER(town_from) = 'moscow';
-4
  1. Частичное совпадение: Если город может записываться по-разному ("Москва", "Moscow", "Мск" и т.д.), потребуется более сложное условие.
  2. Сортировка результатов: Для удобства можно добавить сортировку:
SELECT *
FROM Trip
WHERE town_from = 'Moscow'
ORDER BY time_out;
-5

Проверка структуры таблицы Trip

Предполагаемая структура таблицы Trip (на основе типичных авиабаз данных):

  • trip_no — номер рейса (PK)
  • id_comp — ID компании (внешний ключ)
  • plane — модель самолета
  • town_from — город отправления
  • town_to — город прибытия
  • time_out — время вылета
  • time_in — время прилета

Оптимизация запроса

Если таблица очень большая, вместо SELECT * лучше явно перечислить нужные столбцы:

SELECT trip_no, id_comp, plane, town_from, town_to, time_out, time_in
FROM Trip
WHERE town_from = 'Moscow';
-6

Заключение

Задача решается простым запросом с условием фильтрации по городу отправления. Основная сложность может заключаться в точном определении названия столбца с городом отправления и формата записи названия города.

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

SELECT *
FROM Trip
WHERE town_from = 'Moscow';
-7