SQL-запрос, чтобы найти название команды, которая играла больше всего - PullRequest
0 голосов
/ 21 сентября 2018

Напишите запрос для отображения названий команд, которые сыграли максимальное количество игр.В случае нескольких записей отобразите записи, отсортированные в порядке возрастания на основе названия команды.

это мой запрос, я не знаю, как отобразить максимальное название команды с помощью счетчика игр

select t.name,count(*) as game_count 
   from game g,team t 
   where (g.team_id_1 = t.id or g.team_id_2 = t.id) 
   group by t.name order by game_count desc;

мне нужно найти название команды, которая сыграла больше всего

Я новичок в MySQL и не могу найти правильный / наиболее эффективный запрос для этого, пожалуйста, помогите.

Игровая таблица со столбцами

ID GAME_DATE TEAM_ID_1 TEAM_ID_2

Таблица команд со столбцами

ИМЯ ИМЕНИ

Ответы [ 3 ]

0 голосов
/ 22 сентября 2018

Используйте группирование по и с подзапросом, чтобы соответствовать максимальному количеству сыгранных

select t.name as name, count(*) as gcount
from game g
join team t on t.id = g.team1 or t.id = g.team2 
group by t.name
having count(g.id) = (
    select count(g.id) games
    from game g
    join team t on t.id = g.team1 or t.id = g.team2 
    group by t.name
    order by games desc
    limit 1)
0 голосов
/ 22 сентября 2018
select t.name from team t,game g where  t.id = g.team_id_1 or t.id = g.team_id_2  
  group by t.id having count(*) = (
  select max(cnt) from (select t.name,coalesce(count(*),0) cnt 
  from game g,team t 
  where  t.id = g.team_id_1 or t.id = g.team_id_2  group by t.id)a) 
  order by t.name;

Решено спасибо за идеи

0 голосов
/ 21 сентября 2018

Это кажется немного сложным для домашнего задания.Вы можете использовать табличные выражения?

with summary as (
    select team_id, count(*) cnt from (
        select team_id_1 team_id from game union all
        select team_id_2 from game
    ) g
    group by team_id
)
select * from t where team_id in (
    select team_id from summary where cnt = (select max(cnt) from summary)
)
order by name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...