SQLlite - как получить максимальное значение счетчика из каждой группы - PullRequest
0 голосов
/ 30 июня 2018

Этот вопрос задавался ранее, но в разных форматах, и поэтому я не могу применить ответы на мою проблему (это также может быть связано с моей неопытностью в SQL).

Мой стол из футбольной базы. Цель состоит в том, чтобы выяснить, какой месяц (из каждого года) содержит наибольшее количество матчей.

Ниже приведены месяц, год и количество сыгранных матчей. Я хочу получить максимальное значение совпадений для группы по месяцам (внутри группы по годам).

select strftime('%m',Match.date) as "Month", strftime('%Y',Match.date) as 
"Year", count(*) 
from Match
group by 2,1
order by 2 asc, 1 asc, 3 desc;

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

Пример данных:

league_id, season, stage, **date**, match_api_id, home_team_api_id, away_team_api_id, home_team_goal, away_team_goal

1   2008/2009   1   **2008-08-17 00:00:00** 492473 9987 9993 1 1
1   2008/2009   1   **2008-08-16 00:00:00** 492474 10000 9994 0 0
1   2008/2009   1   **2008-08-16 00:00:00** 492475 9984 8635 0 3
1   2008/2009   1   **2008-08-17 00:00:00** 492476 9991 9998 5 0
1   2008/2009   1   **2008-08-16 00:00:00** 492477 7947 9985 1 3
1   2008/2009   1   **2008-09-24 00:00:00** 492478 8203 8342 1 1
1   2008/2009   1   **2008-08-16 00:00:00** 492479 9999 8571 2 2
1   2008/2009   1   **2008-08-16 00:00:00** 492480 4049 9996 1 2
1   2008/2009   1   **2008-08-16 00:00:00** 492481 10001 9986 1 0
...