SELECT year, surname AS driver_champion
FROM (
SELECT DISTINCT races.year, driver_standings.points, drivers.surname,
RANK() OVER (PARTITION BY races.year ORDER BY driver_standings.points DESC) AS rank
FROM races
JOIN driver_standings ON races.raceId = driver_standings.raceId AND driver_standings.position = 1
JOIN drivers ON driver_standings.driverId = drivers.driverId
)
WHERE rank = 1 AND year < 2023
ORDER BY year;