Rij vergelijken met gerelateerde rijen uit dezelfde tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bo Ter Ham

Bo Ter Ham

09/02/2016 18:17:59
Quote Anchor link
Hallo,

Ik heb in mijn database een tabel 'score', hierin sla ik per wedstrijd, per speler statistieken op over de betreffende speler, bijvoorbeeld hoeveel goals hij heeft gemaakt, het aantal assists en het aantal (succesvolle) passes. Nu wil ik graag een lijst hebben van spelers die de beste statistieken hebben t.o.v. andere spelers die op dezelfde positie spelen. Er zit nog wel een kleine subtiliteit in: ik wil alleen spelers vergelijken die tegen elkaar hebben gespeeld. Ik kom uit op de volgende query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT player.name, player.role, team.name as teamName,
ROUND(
    AVG(passes)-
    (  
        SELECT
        AVG(passes)
        FROM score opponent
        WHERE opponent.game IN (SELECT game FROM score o_score WHERE o_score.player = score.player)
        AND opponent.position = score.position
        AND opponent.player <> score.player
    )
) as passes_diff,
FROM player
INNER JOIN team ON team.id = player.team
INNER JOIN score ON score.player = player.name
WHERE team.league = ?
GROUP BY player.name
ORDER BY passes_diff DESC
LIMIT 15

Deze query werkt wel, het probleem is alleen dat de query enorm traag is (+/- 10 seconde). Ik denk dus dat er een betere oplossing is, ik zou alleen niet weten hoe..

Iemand die weet hoe ik dit beter kan doen?

Bij voorbaat dank voor alle hulp
Gewijzigd op 09/02/2016 18:19:23 door Bo Ter Ham
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.