Вы можете просто изменить MIN
на MAX
в этом запросе. Обратите внимание, что самое медленное время 51284
на самом деле в сеансе 2 (время = 5), а не в сеансе 1.
SELECT l.idRider, l.session, l.time, s.numlaps
FROM laps l
JOIN (SELECT idRider, `session`, MAX(time) AS slowest, COUNT(*) AS numlaps
FROM laps
GROUP BY idRider, `session`) s ON s.idRider = l.idRider AND s.session = l.session AND s.slowest = l.time
JOIN (SELECT idRider, MAX(time) AS slowest
FROM laps
GROUP BY idRider) f ON f.idRider = s.idRider AND f.slowest = s.slowest
ORDER BY idRider
Вывод:
idRider session time numlaps
45652 1 4 1
51284 2 5 1
54582 1 3 1
54645 2 4 1
Демонстрация на dbfiddle