CREATE MATERIALIZED VIEW live_positions AS
SELECT
r.name AS circuit,
CONCAT(d.forename, ' ', d.surname) AS driver,
f1.lap,
f1.pos,
SUBSTRING(f1.ts, 15, 19) AS lap_time
FROM f1_lap_times f1
INNER JOIN drivers d ON f1.driver_id = d.driver_id
INNER JOIN races r ON f1.race_id = r.race_id
WHERE lap IN (SELECT MAX(lap) FROM f1_lap_times)
AND pos IN (1, 2, 3)
ORDER BY pos
LIMIT 3;