results.csv table contains the final race results for each driver in every Grand Prix.
Schema
| Field | Type | Description |
|---|---|---|
resultId | integer | Unique identifier for each result |
raceId | integer | Foreign key to races.csv |
driverId | integer | Foreign key to drivers.csv |
constructorId | integer | Foreign key to constructors.csv |
number | integer | Driver’s race number |
grid | integer | Starting grid position |
position | integer | Finishing position (null if DNF) |
positionText | string | Text representation of finish position |
positionOrder | integer | Numerical order of finish |
points | float | Points scored in the race |
laps | integer | Number of laps completed |
time | string | Total race time (for finishers) |
milliseconds | integer | Total race time in milliseconds |
fastestLap | integer | Lap number of fastest lap |
rank | integer | Rank of fastest lap among all drivers |
fastestLapTime | string | Fastest lap time (MM:SS.mmm format) |
fastestLapSpeed | float | Fastest lap speed in km/h |
statusId | integer | Foreign key to status.csv (finish/retirement reason) |
Sample Data
| resultId | raceId | driverId | constructorId | grid | position | points | laps | time |
|---|---|---|---|---|---|---|---|---|
| 1 | 18 | 1 | 1 | 1 | 1 | 10 | 58 | 1:34:50.616 |
| 2 | 18 | 2 | 2 | 5 | 2 | 8 | 58 | +5.478 |
| 3 | 18 | 3 | 3 | 7 | 3 | 6 | 58 | +8.163 |
| 4 | 18 | 4 | 4 | 11 | 4 | 5 | 58 | +17.181 |
Relationships
References:
results.raceId→races.raceIdresults.driverId→drivers.driverIdresults.constructorId→constructors.constructorIdresults.statusId→status.statusId
Dataset Statistics
- Total Records: 27,260 results
- Date Range: 1950 - Present
- Results per Race: ~20 (varies by era)
Example Queries
Get race winner
Find podium finishes for a driver
Calculate win percentage from pole
Get DNF results
Find fastest lap bonus points
Analyze grid position vs finish position
Join with races and drivers for full context
Notes
positionTextmay contain “R” for retired, “D” for disqualified, “E” for excluded, “W” for withdrawn, “F” for failed to qualify, “N” for not classifiedpositionOrderalways has a value, even for DNFs, showing the order of finishing/retirement- The race winner’s
timefield shows total race time, while others show gap to winner (e.g., “+5.478”) - Points systems have changed over F1 history - current system is 25-18-15-12-10-8-6-4-2-1 for top 10
- Fastest lap bonus point (1 point) introduced in 2019, only awarded if driver finishes in top 10
\Nrepresents null values throughout the dataset
