Шаг 6. ORDER BY: сортировка данных
SELECT Name, Goals
FROM euro2024_players
ORDER BY Goals DESC
LIMIT 1;
ORDER BY позволяет сортировать результаты запроса по любому столбцу. Здесь мы хотим отсортировать игроков по количеству голов, чтобы узнать, кто стал самым результативным. По умолчанию сортировка идет по возрастанию (ASC), но добавив DESC, мы отсортируем данные по убыванию — от большего к меньшему. Таким образом, игрок с наибольшим количеством голов окажется первым в списке.
Ограничение вывода с LIMIT
Мы добавляем LIMIT 1, чтобы вывести только одного игрока — того, кто забил больше всех. Если бы мы не указали LIMIT, SQL показал бы всех игроков, отсортированных по количеству голов. LIMIT 1 позволяет сразу увидеть самого результативного игрока, не просматривая весь список.
Такой запрос выведет самого результативного игрока с наибольшим числом голов. Вряд ли вы удивились, что это Криштиану Роналду!
Комментарий от автора задачи, Серафима Фролкина:
Такую задачу можно решить по-разному, ведь в SQL часто есть несколько способов достичь одной и той же цели. Здесь мы выбрали сортировку ORDER BY с LIMIT 1, чтобы быстро и просто найти игрока с наибольшим количеством голов. Этот подход особенно удобен для новичков: он интуитивно понятен и требует минимальных операций.
Если бы мы хотели увидеть, например, топ-3 или топ-10 игроков, такой метод оказался бы ещё полезнее, так как результат легко расширить, изменив только значение LIMIT. Конечно, можно было бы использовать и функцию MAX, но это потребовало бы больше ресурсов на выполнение запроса. На таком небольшом датасете это не имеет значения, но, если мы работаем с миллионами строк, стоит писать более эффективный код.
Из какого клуба было больше всего игроков?
Чтобы ответить на этот вопрос, используем группировку данных и агрегатные функции.