https://leetcode.com/problems/top-travellers/description/ | Easy |
---|
Даны две таблицы:
Table: Users
column | type | описание |
---|---|---|
id | int | идентификатор пользователя |
name | varchar | имя пользователя |
id — первичный ключ.
Table: Rides
column | type | описание |
---|---|---|
id | int | идентификатор поездки |
user_id | int | идентификатор пользователя (FK → Users.id) |
distance | int | пройденное расстояние |
id — первичный ключ.
Напишите SQL-запрос, который для каждого пользователя возвращает его name
и общее пройденное расстояние travelled_distance
. Если пользователь не совершал поездок, вернуть 0. Результат упорядочить по travelled_distance
по убыванию, а при равных значениях — по name
по возрастанию.
SELECT
u.name,
IFNULL(SUM(r.distance), 0) AS travelled_distance
FROM Users AS u
LEFT JOIN Rides AS r
ON u.id = r.user_id
GROUP BY
u.id,
u.name
ORDER BY
travelled_distance DESC,
u.name ASC;