Outcome of Riders' First Request

A bad first experience drives churn. For each rider's first-ever trip request (earliest requested_at, ties by trip_id), what was the status? Show how many riders fall into each status and the share of all riders with a request.

Expected output

status, riders, pct (rounded to 1 decimal). Sorted by riders descending, then status.

Row order is checked. Column names are not checked; numbers are compared to 2 decimals.

Dataset: Ride-share marketplace

Trip requests in four US cities from January to March 2026, with drivers, riders, fares and ratings.

drivers

One row per driver. A driver only serves their own city.

driver_idINTEGERprimary key
nameTEXT
cityTEXT
joined_dateTEXTYYYY-MM-DD
vehicle_typeTEXTstandard, comfort or xl
riders

One row per rider account.

rider_idINTEGERprimary key
nameTEXT
cityTEXT
signup_dateTEXTYYYY-MM-DD
trips

One row per trip request, whatever its outcome.

trip_idINTEGERprimary key, increases with requested_at
rider_idINTEGER
driver_idINTEGERNULL when no driver was assigned
cityTEXT
requested_atTEXTYYYY-MM-DD HH:MM:SS (UTC)
dropoff_atTEXTNULL unless completed
statusTEXTcompleted, cancelled_rider, cancelled_driver or no_driver
distance_kmREALestimated route distance
fareREALUSD, NULL unless completed
rider_ratingINTEGER1-5 stars given by the rider, NULL if not rated

Engine: SQLite. Dates are text (YYYY-MM-DD); use strftime(), date() and julianday() for date math.

Related problems

SQLite · runs in your browser
Ctrl/⌘ + Enter to run
Expected output preview (4 rows, order matters)
statusriderspct
completed5975.6
cancelled_rider911.5
cancelled_driver67.7

Showing 3 of 4 rows.

Hints

Worked solution

Run at least one query to unlock it.