Description
Write a SQL query to find total distance traveled by each user. Return name and total distance, ordered by distance descending, then name ascending. **Output columns (in order):** name, total_distance
users| Column | Type |
|---|---|
| id | INT |
| name | TEXT |
rides| Column | Type |
|---|---|
| id | INT |
| user_id | INT |
| distance | INT |
Examples
CREATE TABLE users (id INT, name TEXT); CREATE TABLE rides (id INT, user_id INT, distance INT); INSERT INTO users VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie'); INSERT INTO rides VALUES (1, 1, 100), (2, 1, 100), (3, 2, 150);Alice|200
Bob|150
Charlie|0Alice has two rides (100 + 100 = 200), Bob has one ride (150), and Charlie has no rides (0). Results ordered by distance descending.
CREATE TABLE users (id INT, name TEXT); CREATE TABLE rides (id INT, user_id INT, distance INT); INSERT INTO users VALUES (1, 'David'), (2, 'Eva'), (3, 'Frank'), (4, 'Grace'); INSERT INTO rides VALUES (1, 2, 75), (2, 2, 125), (3, 4, 200), (4, 1, 50);Eva|200
Grace|200
David|50
Frank|0Eva has two rides (75 + 125 = 200), Grace has one ride (200), David has one ride (50), and Frank has no rides (0). Results are ordered by distance descending (200, 200, 50, 0), then by name ascending for ties (Eva comes before Grace alphabetically).
CREATE TABLE users (id INT, name TEXT); CREATE TABLE rides (id INT, user_id INT, distance INT); INSERT INTO users VALUES (1, 'John'), (2, 'Kate'), (3, 'Lisa'); INSERT INTO rides VALUES (1, 1, 300), (2, 2, 100), (3, 2, 200), (4, 1, 150);John|450
Kate|300
Lisa|0John traveled 300 + 150 = 450 total distance across two rides, Kate traveled 100 + 200 = 300 total distance across two rides, and Lisa has no rides so 0 distance. Ordered by total distance descending.
Constraints
- •
Include users with 0 rides