Ich habe eine SQLite-Datenbank, die Informationen zu Brettspielen verfolgt (Name, Jahr veröffentlicht, Mechanik, Publisher, Anzahl der Personen, die es auf www.boardgamegeek.com besitzen, und boardgamegeeks aktuellen Rang für dieses Spiel). Das Schema ist:Wählen Sie maximale Summe für jedes Jahr in SQLite
Ich bin daran interessiert, die beliebtesten Mechaniker (der Mechaniker, der die höchste Anzahl von Kopien im Besitz hat) pro Jahr für einen bestimmten Verlag. Die aktuelle Abfrage ich habe, ist:
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;
Das gibt:
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
Was ich bin wirklich interessiert, ist nur das Jahr, Mechaniker, und die Summe von Kopien für Besitz, was auch immer Mechaniker hat die höchsten Summe jedes Jahr. Wie dies (können Bindungen gebrochen jedoch werden):
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
ich glaube, ich könnte in der Abfrage einen anderen select-Anweisung müssen, aber ich kann nicht scheinen, um es zu bekommen zu arbeiten. Irgendwelche Vorschläge?