{ "data": { "question": { "questionId": "1541", "questionFrontendId": "1407", "categoryTitle": "Database", "boundTopicId": 195865, "title": "Top Travellers", "titleSlug": "top-travellers", "content": "

Table: Users

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| id            | int     |\n| name          | varchar |\n+---------------+---------+\nid is the column with unique values for this table.\nname is the name of the user.\n
\n\n

 

\n\n

Table: Rides

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| id            | int     |\n| user_id       | int     |\n| distance      | int     |\n+---------------+---------+\nid is the column with unique values for this table.\nuser_id is the id of the user who traveled the distance "distance".\n
\n\n

 

\n\n

Write a solution to report the distance traveled by each user.

\n\n

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

\n\n

The result format is in the following example.

\n\n

 

\n

Example 1:

\n\n
\nInput: \nUsers table:\n+------+-----------+\n| id   | name      |\n+------+-----------+\n| 1    | Alice     |\n| 2    | Bob       |\n| 3    | Alex      |\n| 4    | Donald    |\n| 7    | Lee       |\n| 13   | Jonathan  |\n| 19   | Elvis     |\n+------+-----------+\nRides table:\n+------+----------+----------+\n| id   | user_id  | distance |\n+------+----------+----------+\n| 1    | 1        | 120      |\n| 2    | 2        | 317      |\n| 3    | 3        | 222      |\n| 4    | 7        | 100      |\n| 5    | 13       | 312      |\n| 6    | 19       | 50       |\n| 7    | 7        | 120      |\n| 8    | 19       | 400      |\n| 9    | 7        | 230      |\n+------+----------+----------+\nOutput: \n+----------+--------------------+\n| name     | travelled_distance |\n+----------+--------------------+\n| Elvis    | 450                |\n| Lee      | 450                |\n| Bob      | 317                |\n| Jonathan | 312                |\n| Alex     | 222                |\n| Alice    | 120                |\n| Donald   | 0                  |\n+----------+--------------------+\nExplanation: \nElvis and Lee traveled 450 miles, Elvis is the top traveler as his name is alphabetically smaller than Lee.\nBob, Jonathan, Alex, and Alice have only one ride and we just order them by the total distances of the ride.\nDonald did not have any rides, the distance traveled by him is 0.\n
\n", "translatedTitle": "排名靠前的旅行者", "translatedContent": "

表:Users

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| id            | int     |\n| name          | varchar |\n+---------------+---------+\nid 是该表中具有唯一值的列。\nname 是用户名字。
\n\n

 

\n\n

表:Rides

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| id            | int     |\n| user_id       | int     |\n| distance      | int     |\n+---------------+---------+\nid 是该表中具有唯一值的列。\nuser_id 是本次行程的用户的 id, 而该用户此次行程距离为 distance 。\n
\n\n

 

\n\n

编写解决方案,报告每个用户的旅行距离。

\n\n

返回的结果表单,以 travelled_distance 降序排列 ,如果有两个或者更多的用户旅行了相同的距离, 那么再以 name 升序排列

\n\n

返回结果格式如下例所示。

\n\n

 

\n\n

示例 1:

\n\n
\n输入:\nUsers 表:\n+------+-----------+\n| id   | name      |\n+------+-----------+\n| 1    | Alice     |\n| 2    | Bob       |\n| 3    | Alex      |\n| 4    | Donald    |\n| 7    | Lee       |\n| 13   | Jonathan  |\n| 19   | Elvis     |\n+------+-----------+\n\nRides 表:\n+------+----------+----------+\n| id   | user_id  | distance |\n+------+----------+----------+\n| 1    | 1        | 120      |\n| 2    | 2        | 317      |\n| 3    | 3        | 222      |\n| 4    | 7        | 100      |\n| 5    | 13       | 312      |\n| 6    | 19       | 50       |\n| 7    | 7        | 120      |\n| 8    | 19       | 400      |\n| 9    | 7        | 230      |\n+------+----------+----------+\n输出:\n+----------+--------------------+\n| name     | travelled_distance |\n+----------+--------------------+\n| Elvis    | 450                |\n| Lee      | 450                |\n| Bob      | 317                |\n| Jonathan | 312                |\n| Alex     | 222                |\n| Alice    | 120                |\n| Donald   | 0                  |\n+----------+--------------------+\n解释:\nElvis 和 Lee 旅行了 450 英里,Elvis 是排名靠前的旅行者,因为他的名字在字母表上的排序比 Lee 更小。\nBob, Jonathan, Alex 和 Alice 只有一次行程,我们只按此次行程的全部距离对他们排序。\nDonald 没有任何行程, 他的旅行距离为 0。\n
\n", "isPaidOnly": false, "difficulty": "Easy", "likes": 69, "dislikes": 0, "isLiked": null, "similarQuestions": "[]", "contributors": [], "langToValidPlayground": "{\"cpp\": false, \"java\": false, \"python\": false, \"python3\": false, \"mysql\": false, \"mssql\": false, \"oraclesql\": false, \"c\": false, \"csharp\": false, \"javascript\": false, \"typescript\": false, \"bash\": false, \"php\": false, \"swift\": false, \"kotlin\": false, \"dart\": false, \"golang\": false, \"ruby\": false, \"scala\": false, \"html\": false, \"pythonml\": false, \"rust\": false, \"racket\": false, \"erlang\": false, \"elixir\": false, \"pythondata\": false, \"react\": false, \"vanillajs\": false, \"postgresql\": false}", "topicTags": [ { "name": "Database", "slug": "database", "translatedName": "数据库", "__typename": "TopicTagNode" } ], "companyTagStats": null, "codeSnippets": [ { "lang": "MySQL", "langSlug": "mysql", "code": "# Write your MySQL query statement below", "__typename": "CodeSnippetNode" }, { "lang": "MS SQL Server", "langSlug": "mssql", "code": "/* Write your T-SQL query statement below */", "__typename": "CodeSnippetNode" }, { "lang": "Oracle", "langSlug": "oraclesql", "code": "/* Write your PL/SQL query statement below */", "__typename": "CodeSnippetNode" }, { "lang": "Pandas", "langSlug": "pythondata", "code": "import pandas as pd\n\ndef top_travellers(users: pd.DataFrame, rides: pd.DataFrame) -> pd.DataFrame:\n ", "__typename": "CodeSnippetNode" }, { "lang": "PostgreSQL", "langSlug": "postgresql", "code": "-- Write your PostgreSQL query statement below", "__typename": "CodeSnippetNode" } ], "stats": "{\"totalAccepted\": \"41.7K\", \"totalSubmission\": \"74.1K\", \"totalAcceptedRaw\": 41661, \"totalSubmissionRaw\": 74079, \"acRate\": \"56.2%\"}", "hints": [], "solution": null, "status": null, "sampleTestCase": "{\"headers\":{\"Users\":[\"id\",\"name\"],\"Rides\":[\"id\",\"user_id\",\"distance\"]},\"rows\":{\"Users\":[[1,\"Alice\"],[2,\"Bob\"],[3,\"Alex\"],[4,\"Donald\"],[7,\"Lee\"],[13,\"Jonathan\"],[19,\"Elvis\"]],\"Rides\":[[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]]}}", "metaData": "{\"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\"}}}", "judgerAvailable": true, "judgeType": "large", "mysqlSchemas": [ "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')" ], "enableRunCode": true, "envInfo": "{\"mysql\":[\"MySQL\",\"

\\u7248\\u672c\\uff1aMySQL 8.0<\\/code><\\/p>\"],\"mssql\":[\"MS SQL Server\",\"

mssql server 2019.<\\/p>\"],\"oraclesql\":[\"Oracle\",\"

Oracle Sql 11.2.<\\/p>\"],\"pythondata\":[\"Pandas\",\"

Python 3.10 with Pandas 2.0.2 and NumPy 1.25.0<\\/p>\"],\"postgresql\":[\"PostgreSQL\",\"

PostgreSQL 16<\\/p>\"]}", "book": null, "isSubscribed": false, "isDailyQuestion": false, "dailyRecordStatus": null, "editorType": "CKEDITOR", "ugcQuestionId": null, "style": "LEETCODE", "exampleTestcases": "{\"headers\":{\"Users\":[\"id\",\"name\"],\"Rides\":[\"id\",\"user_id\",\"distance\"]},\"rows\":{\"Users\":[[1,\"Alice\"],[2,\"Bob\"],[3,\"Alex\"],[4,\"Donald\"],[7,\"Lee\"],[13,\"Jonathan\"],[19,\"Elvis\"]],\"Rides\":[[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]]}}", "__typename": "QuestionNode" } } }