Top Travellers
<p>Table: <code>Users</code></p>

<pre>
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| name          | varchar |
+---------------+---------+
id is the column with unique values for this table.
name is the name of the user.
</pre>

<p>&nbsp;</p>

<p>Table: <code>Rides</code></p>

<pre>
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| user_id       | int     |
| distance      | int     |
+---------------+---------+
id is the column with unique values for this table.
user_id is the id of the user who traveled the distance &quot;distance&quot;.
</pre>

<p>&nbsp;</p>

<p>Write a solution&nbsp;to report the distance traveled by each user.</p>

<p>Return the result table ordered by <code>travelled_distance</code> in <strong>descending order</strong>, if two or more users traveled the same distance, order them by their <code>name</code> in <strong>ascending order</strong>.</p>

<p>The&nbsp;result format is in the following example.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>

<pre>
<strong>Input:</strong> 
Users table:
+------+-----------+
| id   | name      |
+------+-----------+
| 1    | Alice     |
| 2    | Bob       |
| 3    | Alex      |
| 4    | Donald    |
| 7    | Lee       |
| 13   | Jonathan  |
| 19   | Elvis     |
+------+-----------+
Rides table:
+------+----------+----------+
| id   | user_id  | distance |
+------+----------+----------+
| 1    | 1        | 120      |
| 2    | 2        | 317      |
| 3    | 3        | 222      |
| 4    | 7        | 100      |
| 5    | 13       | 312      |
| 6    | 19       | 50       |
| 7    | 7        | 120      |
| 8    | 19       | 400      |
| 9    | 7        | 230      |
+------+----------+----------+
<strong>Output:</strong> 
+----------+--------------------+
| name     | travelled_distance |
+----------+--------------------+
| Elvis    | 450                |
| Lee      | 450                |
| Bob      | 317                |
| Jonathan | 312                |
| Alex     | 222                |
| Alice    | 120                |
| Donald   | 0                  |
+----------+--------------------+
<strong>Explanation:</strong> 
Elvis and Lee traveled 450 miles, Elvis is the top traveler as his name is alphabetically smaller than Lee.
Bob, Jonathan, Alex, and Alice have only one ride and we just order them by the total distances of the ride.
Donald did not have any rides, the distance traveled by him is 0.
</pre>

[]
['Create Table If Not Exists Users (id int, name varchar(30))', 'Create Table If Not Exists Rides (id int, user_id int, distance int)', 'Truncate table Users', "insert into Users (id, name) values ('1', 'Alice')", "insert into Users (id, name) values ('2', 'Bob')", "insert into Users (id, name) values ('3', 'Alex')", "insert into Users (id, name) values ('4', 'Donald')", "insert into Users (id, name) values ('7', 'Lee')", "insert into Users (id, name) values ('13', 'Jonathan')", "insert into Users (id, name) values ('19', 'Elvis')", 'Truncate table Rides', "insert into Rides (id, user_id, distance) values ('1', '1', '120')", "insert into Rides (id, user_id, distance) values ('2', '2', '317')", "insert into Rides (id, user_id, distance) values ('3', '3', '222')", "insert into Rides (id, user_id, distance) values ('4', '7', '100')", "insert into Rides (id, user_id, distance) values ('5', '13', '312')", "insert into Rides (id, user_id, distance) values ('6', '19', '50')", "insert into Rides (id, user_id, distance) values ('7', '7', '120')", "insert into Rides (id, user_id, distance) values ('8', '19', '400')", "insert into Rides (id, user_id, distance) values ('9', '7', '230')"]
[{"value": "mysql", "text": "MySQL", "defaultCode": "# Write your MySQL query statement below\n"}, {"value": "mssql", "text": "MS SQL Server", "defaultCode": "/* Write your T-SQL query statement below */\n"}, {"value": "oraclesql", "text": "Oracle", "defaultCode": "/* Write your PL/SQL query statement below */\n"}, {"value": "pythondata", "text": "Pandas", "defaultCode": "import pandas as pd\n\ndef top_travellers(users: pd.DataFrame, rides: pd.DataFrame) -> pd.DataFrame:\n    "}, {"value": "postgresql", "text": "PostgreSQL", "defaultCode": "-- Write your PostgreSQL query statement below\n"}]
{"mysql": ["Create Table If Not Exists Users (id int, name varchar(30))", "Create Table If Not Exists Rides (id int, user_id int, distance int)"], "mssql": ["Create Table Users (id int, name varchar(30))", "Create Table Rides (id int, user_id int, distance int)"], "oraclesql": ["Create Table Users (id int, name varchar(30))", "Create Table Rides (id int, user_id int, distance int)"], "database": true, "name": "top_travellers", "pythondata": ["Users = pd.DataFrame([], columns=['id', 'name']).astype({'id':'Int64', 'name':'object'})", "Rides = pd.DataFrame([], columns=['id', 'user_id', 'distance']).astype({'id':'Int64', 'user_id':'Int64', 'distance':'Int64'})"], "postgresql": ["\nCreate Table If Not Exists Users (id int, name varchar(30))\n", "Create Table If Not Exists Rides (id int, user_id int, distance int)"], "database_schema": {"Users": {"id": "INT", "name": "VARCHAR(30)"}, "Rides": {"id": "INT", "user_id": "INT", "distance": "INT"}}}
{"mysql": ["MySQL", "<p><code>MySQL 8.0</code>.</p>"], "mssql": ["MS SQL Server", "<p><code>mssql server 2019</code>.</p>"], "oraclesql": ["Oracle", "<p><code>Oracle Sql 11.2</code>.</p>"], "pythondata": ["Pandas", "<p>Python 3.10 with Pandas 2.2.2 and NumPy 1.26.4</p>"], "postgresql": ["PostgreSQL", "<p>PostgreSQL 16</p>"]}
['Database']