выбрать максимальное количество после группы по нескольким столбцам

0

У меня есть таблица со схемой и данными следующим образом

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
  • 0
    См. Meta.stackoverflow.com/questions/333952/…
  • 0
    как вы хотите справиться с галстуками? показать оба?
Показать ещё 6 комментариев
Теги:
database

1 ответ

1
Лучший ответ

Это должно работать:

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
  • 0
    Этот работает! Спасибо! Можно ли этого достичь и без объединений?
  • 0
    Другим вариантом будет использование операторов WITH вместо объединений, но MySQL не поддерживает их с версии 5.x

Ещё вопросы

Сообщество Overcoder
Наверх
Меню