Lav topliste ud fra middelværdi
Jeg havde tænkt mig at lave en slags topliste, men er simpelthen gået i stå.Lidt start info:
Database (MySQL)
CREATE TABLE `gameStats` (
`id` smallint(9) NOT NULL auto_increment,
`playerID` smallint(6) NOT NULL,
`gameID` smallint(6) NOT NULL,
`role` varchar(50) NOT NULL,
`townMafiaOther` tinyint(2) NOT NULL,
`gameMOD` tinyint(1) NOT NULL default '0',
`won` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `playerID` (`playerID`,`gameID`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
Efter endt spil lægges resultatet for hver spiller ind.
Det der skal bruges til dette spørgsmål er playerID og won, som udgangspunkt.
Ideen er, at der laves en liste over hvem der procentvis har vundet mest. Denne er lavet.
Og så skal der laves en liste over hvem der har vundet flest spil.
Dette er i sig selv nemt nok.
Det jeg ønsker nu er, at de to lister kombineres i en liste, som skal gøre følgende:
Liste 1:
1 playerID = 1
2 playerID = 2
3 playerID = 3
4 playerID = 4
Liste 2:
1 playerID = 2
2 playerID = 4
3 playerID = 1
4 playerID = 3
Den tredie liste skal så tage placering fra playerID 1 på de to lister, lægge dem sammen og dividere med to.
Og så skal listen udskrives ud fra den middelværdi, mindste værdi først.
Liste 3:
1 playerID 2 = 1,5
2 playerID 1 = 2
3 playerID 4 = 3
4 playerID 3 = 3,5
Kode til at lave procent liste:
SELECT SUM(won) AS winnings, count(*) AS played, ((SUM(won)/count(*))*100) AS percent, playerID FROM `gameStats` GROUP BY playerID ORDER BY percent DESC, winnings DESC, played DESC
Kode til at lave win liste:
SELECT SUM(won) AS winnings GROUP BY playerID ORDER BY winnings DESC
Jeg ønsker beregningerne lavet i SQL queryen hvis det er muligt, og sortering ligeså, selvfølgelig, men jeg kan simpelthen ikke lige komme på hvordan jeg skal komme videre.
Håber nogen kan hjælpe.
På forhånd tak.
