У меня есть таблица со схемой и данными следующим образом
id,winner,season
1, Chelsea, 2014
2, Chelsea, 2014
3, Chelsea, 2015
4, Arsenal, 2014
,
и так далее.
В принципе, есть запись в каждом матче каждого сезона.
Мне нужно запросить и определить команду, которая выиграла максимальное количество матчей за каждый сезон.
Я получил до получения максимального количества матчей в каждом сезоне, но я не могу получить имя команды, у которой был максимум. Любые вести?
with t1 as
(select count(winner) as cnt, winner, season from matches group by winner,season)
select max(cnt),season from t1 group by season
Это должно работать:
select t2.*
from (
select season, max(totalwins) as totalwins from (
select season, winner, count(*) as totalwins
from matches t
group by season, winner
) s1 group by season) w join
(select season, winner, count(*) as totalwins
from matches t
group by season, winner
) t2 on t2.season = w.season and t2.totalwins = w.totalwins;
Результат:
season winner totalwins
------ ------- ---------
2014 Chelsea 2
2015 Arsenal 1
2015 Chelsea 1
WITH
вместо объединений, но MySQL не поддерживает их с версии 5.x