
Uber wants to understand how quickly new riders come back for a second completed trip. Write a SQL query to calculate the average number of days between a user's first completed ride and second completed ride.
Use only the uber_trips table.
trip_status = 'completed'.rider_id, identify the first and second completed rides by request_ts.| column | type | description |
|---|---|---|
| trip_id | INT | Unique trip identifier |
| rider_id | INT | Uber rider identifier |
| city_name | VARCHAR(50) | City where the trip was requested |
| request_ts | TIMESTAMP | Trip request timestamp |
| trip_status | VARCHAR(20) | Trip status such as completed or canceled |
| trip_id | rider_id | city_name | request_ts | trip_status |
|---|---|---|---|---|
| 1005 | 103 | Chicago | 2024-01-10 18:00:00 | completed |
| 1001 | 101 | San Francisco | 2024-01-01 08:00:00 | completed |
| 1003 | 102 | New York | 2024-01-03 09:00:00 | canceled |
| 1002 | 101 | San Francisco | 2024-01-05 09:30:00 | completed |
| 1009 | 105 | Los Angeles | 2024-01-07 08:00:00 | completed |
| 1010 | 105 | Los Angeles | 2024-01-07 20:00:00 | completed |
| avg_days_between_first_and_second_ride |
|---|
| 2.67 |
| Column | Type | Description |
|---|---|---|
| trip_idPK | INT | Unique trip identifier |
| rider_id | INT | Uber rider identifier |
| city_name | VARCHAR(50) | City where the trip was requested |
| request_ts | TIMESTAMP | Trip request timestamp |
| trip_status | VARCHAR(20) | Trip lifecycle status |
{"uber_trips":[["1005","103","Chicago","2024-01-10 18:00:00","completed"],["1001","101","San Francisco","2024-01-01 08:00:00","completed"],["1003","102","New York","2024-01-03 09:00:00","canceled"],["1002","101","San Francisco","2024-01-05 09:30:00","completed"],["1009","105","Los Angeles","2024-01-07 08:00:00","completed"],["1010","105","Los Angeles","2024-01-07 20:00:00","completed"],["1004","102","New York","2024-01-04 10:00:00","completed"],["1008","104",null,"2024-01-02 12:00:00","completedOutput[["2.19"]]