Public
Edited
Mar 22, 2023
Insert cell
Insert cell
Insert cell
f1db = DuckDBClient.of({
circuits: FileAttachment("circuits.csv"),
constructor_results: FileAttachment("constructor_results.csv"),
constructor_standings: FileAttachment("constructor_standings.csv"),
constructors: FileAttachment("constructors.csv"),
driver_standings: FileAttachment("driver_standings.csv"),
drivers: FileAttachment("drivers.csv"),
lap_times: FileAttachment("lap_times.csv"),
pit_stops: FileAttachment("pit_stops.csv"),
qualifying: FileAttachment("qualifying.csv"),
races: FileAttachment("races.csv"),
results: FileAttachment("results.csv"),
seasons: FileAttachment("seasons.csv"),
sprint_results: FileAttachment("sprint_results.csv"),
status: FileAttachment("status.csv")
})
Insert cell
f1db
SELECT races."year", AVG((CAST(results1."milliseconds" AS INTEGER) - CAST(results2."milliseconds" AS INTEGER)) / 1000.0) as avg_margin_of_victory
FROM races
JOIN results results1 ON races."raceId" = results1."raceId" AND results1."position" = 1
JOIN results results2 ON races."raceId" = results2."raceId" AND results2."position" = 2
WHERE results1."milliseconds" ~ '^[0-9]+$' AND results2."milliseconds" ~ '^[0-9]+$'
GROUP BY races."year"
ORDER BY races."year";


Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more