У меня есть база данных SQLite, которая отслеживает информацию на настольных играх (имя, год публикации, механики, издатели, количество людей, которые владеют им на www.boardgamegeek.com, и текущий рейтинг boardgamegeek для эта игра). Схема является:Выберите максимальную сумму за каждый год в SQLite
Я заинтересован в получении наиболее популярных механик (механик, который имеет наибольшее количество копий, находящиеся в собственности) в год для конкретного издателя. Текущий запрос у меня есть:
select games.year as yr, mechanics.name as mech, sum(collection.owned) as sm
from games
inner join gamemech on games.bggid = gamemech.bggid
inner join mechanics on gamemech.mechid = mechanics.mechid
inner join gamepub on gamepub.bggid = games.bggid
inner join publishers on publishers.pubid = gamepub.pubid
inner join collection on collection.bggid = games.bggid
where publishers.name like '%stronghold%'
group by yr, mech order by yr limit 20;
Это возвращает:
1974|Commodity Speculation|1460
1974|Dice Rolling|1460
1974|Tile Placement|1460
1982|Action Point Allowance System|16111
1982|Dice Rolling|16111
1982|Modular Board|16111
1982|Secret Unit Deployment|16111
1985|PaperandPencil|1949
1991|Auction/Bidding|1266
1992|Grid Movement|1704
1992|Pickup and Deliver|1704
2011|Action Point Allowance System|7943
2011|Area Control/Area Influence|174
2011|Area Movement|3607
2011|Auction/Bidding|174
2011|Card Drafting|5133
2011|Deck/Pool Building|3768
2011|Dice Rolling|2385
2011|Hand Management|5663
2011|Line Drawing|2141
То, что я на самом деле интересует только год, механика, и сумма экземпляров принадлежащих к любой механик имеет самый высокий сумма каждый год. Как это (связи может быть нарушена, однако):
1974|Commodity Speculation|1460
1982|Action Point Allowance System|16111
1985|PaperandPencil|1949
1991|Auction/Bidding|1266
1992|Grid Movement|1704
2011|Action Point Allowance System|7943
Я думаю, что, возможно, потребуется еще один оператор выбора в запросе, но я не могу заставить его работать. Какие-либо предложения?