-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2687-BikesLastTimUsed.sql
More file actions
61 lines (58 loc) · 3.26 KB
/
2687-BikesLastTimUsed.sql
File metadata and controls
61 lines (58 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
-- 2687. Bikes Last Time Used
-- Table: Bikes
-- +-------------+----------+
-- | Column Name | Type |
-- +-------------+----------+
-- | ride_id | int |
-- | bike_number | int |
-- | start_time | datetime |
-- | end_time | datetime |
-- +-------------+----------+
-- ride_id column contains unique values.
-- Each row contains a ride information that includes ride_id, bike number, start and end time of the ride.
-- Write a solution to find the last time when each bike was used.
-- Return the result table ordered by the bikes that were most recently used.
-- The result format is in the following example.
-- Example 1:
-- Input:
-- Bikes table:
-- +---------+-------------+---------------------+---------------------+
-- | ride_id | bike_number | start_time | end_time |
-- +---------+-------------+---------------------+---------------------+
-- | 1 | W00576 | 2012-03-25 11:30:00 | 2012-03-25 12:40:00 |
-- | 2 | W00300 | 2012-03-25 10:30:00 | 2012-03-25 10:50:00 |
-- | 3 | W00455 | 2012-03-26 14:30:00 | 2012-03-26 17:40:00 |
-- | 4 | W00455 | 2012-03-25 12:30:00 | 2012-03-25 13:40:00 |
-- | 5 | W00576 | 2012-03-25 08:10:00 | 2012-03-25 09:10:00 |
-- | 6 | W00576 | 2012-03-28 02:30:00 | 2012-03-28 02:50:00 |
-- +---------+-------------+---------------------+---------------------+
-- Output:
-- +-------------+---------------------+
-- | bike_number | end_time |
-- +-------------+---------------------+
-- | W00576 | 2012-03-28 02:50:00 |
-- | W00455 | 2012-03-26 17:40:00 |
-- | W00300 | 2012-03-25 10:50:00 |
-- +-------------+---------------------+
-- Explanation:
-- bike with number W00576 has three rides, out of that, most recent ride is with ride_id 6 which ended on 2012-03-28 02:50:00.
-- bike with number W00300 has only 1 ride so we will include end_time in output directly.
-- bike with number W00455 has two rides, out of that, most recent ride is with ride_id 3 which ended on 2012-03-26 17:40:00.
-- Returning output in order by the bike that were most recently used.
-- Create table If Not Exists Bikes (ride_id int,bike_number varchar(100), start_time datetime,end_time datetime)
-- Truncate table Bikes
-- insert into Bikes (ride_id, bike_number, start_time, end_time) values ('1', 'W00576', '2012-03-25 11:30:00', '2012-03-25 12:40:00')
-- insert into Bikes (ride_id, bike_number, start_time, end_time) values ('2', 'W00300', '2012-03-25 10:30:00', '2012-03-25 10:50:00')
-- insert into Bikes (ride_id, bike_number, start_time, end_time) values ('3', 'W00455', '2012-03-26 14:30:00', '2012-03-26 17:40:00')
-- insert into Bikes (ride_id, bike_number, start_time, end_time) values ('4', 'W00455', '2012-03-25 12:30:00', '2012-03-25 13:40:00')
-- insert into Bikes (ride_id, bike_number, start_time, end_time) values ('5', 'W00576', '2012-03-25 08:10:00', '2012-03-25 09:10:00')
-- insert into Bikes (ride_id, bike_number, start_time, end_time) values ('6', 'W00576', '2012-03-28 02:30:00', '2012-03-28 02:50:00')
SELECT
bike_number,
MAX(end_time) AS end_time -- 最近一次被使用 的时间
FROM
Bikes
GROUP BY
bike_number -- 每辆自行车
ORDER BY
end_time DESC -- 结果表按 最近被使用 的自行车进行排序