Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1579 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème GROUP BY

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème GROUP BY

n°1960859
Profil sup​primé
Posté le 27-01-2010 à 14:25:27  answer
 

Bonjour,  
Je crée un classement automatique des joueurs sur mon serveur mais je bloque à ce niveau.
Pour pouvoir participer au classement général, un joueur doit avoir totalisé au moins 1000 points et avoir joué au moins 1 heure.
J'y suis arrivé pour le classement individuel mais pas pour le classement par équipe. En effet, certains joueurs ont une équipe et avec ma requête ci dessous les points minimums et temps minimums sont affectés au clan entier. Hors, j'aimerais que seuls soient pris en compte les joueurs ayant chacun satifsfaits les conditions nécessaires pour être dans le classement général.
 
J'ai pensé à plusieurs choses comme :

Code :
  1. WHERE [...] players.player_id IN (SELECT retournant IDs des joueurs du classement général)


Mais comme il n'y a qu'un player_id par ligne ça ne peut pas fonctionner.
 
Voici la requête actuelle :

Code :
  1. SELECT clans.clan_tag, clans.clan_id, SUM(scores.played_time) AS played_time, SUM(scores.frags) AS frags,
  2.  SUM(scores.gibs) AS gibs, SUM(scores.teamkills) AS teamkills, SUM(scores.teamgibs) AS teamgibs, SUM(scores.suicides) AS suicides,
  3. SUM(scores.deaths) AS deaths, SUM(scores.ctfscore) AS ctfscore, SUM(scores.htfscore) AS htfscore,
  4. SUM(scores.ktfscore) AS ktfscore, SUM(scores.RETURN) AS `return`, SUM(scores.steal) AS steal, SUM(scores.points) AS points
  5. FROM scores
  6. INNER JOIN players ON scores.player_id = players.player_id
  7. LEFT JOIN clans ON players.player_clan = clans.clan_id
  8. WHERE scores.date LIKE '$date' AND players.player_clan GROUP BY clans.clan_id
  9. HAVING SUM(scores.points) >= 1000 AND SUM(scores.played_time) > 3600
  10. ORDER BY SUM(points)/SUM(played_time)
  11. DESC LIMIT 50


 
Merci ;)


Message édité par Profil supprimé le 27-01-2010 à 14:26:33
mood
Publicité
Posté le 27-01-2010 à 14:25:27  profilanswer
 

n°1960864
MagicBuzz
Posté le 27-01-2010 à 14:41:05  profilanswer
 

Hmmm, j'ai pas tout compris...
 
Bon, alors on commence doucement :
 
Liste des joueurs éligibles au classement général :

Code :
  1. SELECT p.player_id, p.player_clan, sum(s.points) points, sum(s.played_time) time, etc.
  2. FROM players p
  3. INNER JOIN scores s ON s.player_id = p.player_id
  4. HAVING sum(s.points) >= 1000 AND sum(s.played_time) > 3600
  5. GROUP BY p.player_id, p.player_clan


 
Bon, ensuite, on cherche avec les équipes :

Code :
  1. SELECT c.clan_tag, c.clan_id, sum(j.time) played_time, etc.
  2. FROM clans c
  3. INNER JOIN (
  4.  SELECT p.player_id, p.player_clan, sum(s.points) points, sum(s.played_time) time, etc.
  5.  FROM players p
  6.  INNER JOIN scores s ON s.player_id = p.player_id
  7.  HAVING sum(s.points) >= 1000 AND sum(s.played_time) > 3600
  8.  GROUP BY p.player_id, p.player_clan
  9. ) j ON j.player_clan = c.clan_id
  10. GROUP BY c.clan_tag, c.clan_id
  11. ORDER BY sum(j.points) / sum(j.time) DESC
  12. LIMIT 1, 50


 
 
Je suis sûr de rien, mais ça me semble repondre à ta question.

n°1960870
Profil sup​primé
Posté le 27-01-2010 à 14:52:19  answer
 

Merci pour ta réponse, je regarde ça tout de suite.

n°1960881
Profil sup​primé
Posté le 27-01-2010 à 15:17:26  answer
 

Merci beaucoup ! Ca marche !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème GROUP BY

 

Sujets relatifs
Problème de débutantProblème lien hypertext en localhost
Problème code pour mot de passeProbleme Loader et URLRequest en AS3
Notice: Undefined index: site in... =>problème lecture dans sgbd[Resolu] Problème de récupération d'un fichier résultat de POST (API)
Problème conditions requete SQLprobleme de redirection
PHP SQL probleme ORDER BY , GROUP BY...Requete SQL avec GROUP BY probleme
Plus de sujets relatifs à : Problème GROUP BY


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR