Avatar billede Slettet bruger
15. februar 2009 - 04:09

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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester