Найти тему

1407. Лучшие путешественники SQL (легко)

Задача: Напишите решение для отчета о расстоянии, пройденном каждым пользователем.

Возвращает таблицу результатов, упорядоченную по travelled_distance в порядке убывания, если два или более пользователей прошли одинаковое расстояние, упорядочьте их по их name в порядке возрастания.
Дано:

Таблица: Users

id - это столбец с уникальными значениями для этой таблицы.
name - это имя пользователя.

Таблица: Rides

id - это столбец с уникальными значениями для этой таблицы.
user_id - это идентификатор пользователя, который преодолел расстояние "distance".

Решение:
SELECT Users.name, IFNULL(SUM(Rides.distance), 0) AS travelled_distance

FROM Users LEFT JOIN Rides

ON Users.id = Rides.user_id

GROUP BY user_id

ORDER BY travelled_distance DESC, name ASC;

Результат:

-2

Элвис и Ли проехали 450 миль, Элвис - лучший путешественник, поскольку его имя в алфавитном порядке меньше, чем Ли.
У Боба, Джонатана, Алекса и Элис только одна поездка, и мы просто упорядочиваем их по общему расстоянию поездки.
У Дональда не было ни одной поездки, пройденное им расстояние равно 0.

Источник:
https://leetcode.com/problems/top-travellers/