Задача: Напишите решение для отчета о расстоянии, пройденном каждым пользователем.
Возвращает таблицу результатов, упорядоченную по 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;
Результат:
Элвис и Ли проехали 450 миль, Элвис - лучший путешественник, поскольку его имя в алфавитном порядке меньше, чем Ли.
У Боба, Джонатана, Алекса и Элис только одна поездка, и мы просто упорядочиваем их по общему расстоянию поездки.
У Дональда не было ни одной поездки, пройденное им расстояние равно 0.
Источник: https://leetcode.com/problems/top-travellers/