Продолжаем цикл статей с разбором задач из онлайн-тренажера. На очереди пятая задача.
В SQL, помимо прочего, работают многие операторы, знакомые каждому школьнику с уроков информатики - SUM, COUNT, AVG, MIN/MAX, ROUND, ABS и прочие.
В пятой задаче нам как раз потребуется оператор COUNT для того, чтобы вывести количество рейсов, совершенных на TU-134.
Для начала, как и в предыдущей задаче, найдем обозначение TU-134 в таблице Trip с помощью запроса SELECT * FROM Trip LIMIT 10.
Никаких сюрпризов. Нужный нам самолет обозначен банально 'TU-134'. Нужно обратить внимание, что в задаче просят, чтобы результирующее поле носило имя count, что достигается использованием конструкции AS в блоке SELECT. Поэтому результирующий запрос будет таким:
SELECT
COUNT(*) AS count
FROM Trip
WHERE
plane = 'TU-134'
Что еще важно отметить. COUNT(*) посчитает все строки в таблице с учетом заданных условий. При использовании простых запросов к одной таблице без JOIN-ов COUNT(*) можно использовать, не задумываясь. Но если запрос сложный, происходит объединение и работа с несколькими таблицами, есть риск получить задвоенные/затроенные/заNенные цифры в ответе. Почему это может происходить коснемся в задаче, где появится первый JOIN.
Поэтому для надежности вычислений COUNT(*) можно замерить на COUNT(DISTINCT уникальный ключ), немного преобразовав запрос:
SELECT
COUNT(DISTINCT id) AS count
FROM Trip
WHERE
plane = 'TU-134'
Спасибо за прочтение ) подписывайтесь на телеграм