У меня есть таблица, которая показывает количество поездок наездника в каждой точке стоянки. Мне нужно найти стенд для каждого гонщика, для которого у него есть максимальное количество поездок.
Мой первый результат в этом формате: 1
Мне нужен мой конечный результат, подобный этому: 2
В настоящее время я использую этот запрос, но я знаю, что это можно сделать лучше. Любые предложения будут полезны.
select c.rider_id, c.end_stand, b.max_rides
from
(select rider_id, max(rides) as max_rides
from
(select rider_id, end_stand, count(id) as rides
from ride where end_stand is not null
group by 1,2) a
group by 1
order by 2 desc, 1) b
join
(select rider_id, end_stand, count(id) as rides
from ride where end_stand is not null
group by 1,2) c
on c.rider_id = b.rider_id and c.rides = b.max_rides
order by 3 desc, 2,1