Requête MySQL count sur plusieurs champs
w00t w00t
-
AssassinTourist Messages postés 6029 Date d'inscription Statut Contributeur Dernière intervention -
AssassinTourist Messages postés 6029 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de me faire une petite page php, pour gérer les records de mon alliance sur un jeu. J'ai une base SQL avec les champs type, joueur1, joueur2. joueur3.
Pour chaque troupe qu'on peut obtenir dans le jeu, je liste le record (qui en a le plus) et je peux donc avoir jusqu'à 3 personnes qui partagent ce record.
Exemple à la con :
type | joueur1 | joueur2 | joueur3
record 1 | toto | - | -
record 2 | tata | toto | -
record 3 | albert | - | -
record 4 | albert | tata | toto
Si je veux me faire une requête d'un top 3 des joueurs qui ont le plus de records, quelle requête je pourrais faire ? J'ai essayé quelques manips avec des COUNT mais je n'arrive pas à mes fins :(
Si quelqu'un sait comment faire, ça m'arrangerait vraiment beaucoup !
Je suis en train de me faire une petite page php, pour gérer les records de mon alliance sur un jeu. J'ai une base SQL avec les champs type, joueur1, joueur2. joueur3.
Pour chaque troupe qu'on peut obtenir dans le jeu, je liste le record (qui en a le plus) et je peux donc avoir jusqu'à 3 personnes qui partagent ce record.
Exemple à la con :
type | joueur1 | joueur2 | joueur3
record 1 | toto | - | -
record 2 | tata | toto | -
record 3 | albert | - | -
record 4 | albert | tata | toto
Si je veux me faire une requête d'un top 3 des joueurs qui ont le plus de records, quelle requête je pourrais faire ? J'ai essayé quelques manips avec des COUNT mais je n'arrive pas à mes fins :(
Si quelqu'un sait comment faire, ça m'arrangerait vraiment beaucoup !
A voir également:
- Requête MySQL count sur plusieurs champs
- Mysql community server - Télécharger - Bases de données
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Virus
- Word mettre à jour tous les champs - Forum Word
- Requête sql pix - Forum Python
- Blocage sécurité ✓ - Forum Réseaux sociaux
5 réponses
Bonjour,
Pouvez-vous nous dire ce que vous avez tenté pour vos count ?
Sinon, moi je verrais bien de faire ça en deux temps :
- d'abord en récupérant le score de tout le monde avec un tableau nom | count(resultat), en SQL
- puis en récupérant dans un second temps en php le meilleur score (qui peut être partagé donc on met ça dans un tableau)
Pouvez-vous nous dire ce que vous avez tenté pour vos count ?
Sinon, moi je verrais bien de faire ça en deux temps :
- d'abord en récupérant le score de tout le monde avec un tableau nom | count(resultat), en SQL
- puis en récupérant dans un second temps en php le meilleur score (qui peut être partagé donc on met ça dans un tableau)
Je galère depuis deux heures là-dessus, honnêtement je ne sais plus trop ce que j'ai testé, beaucoup beaucoup de choses... Je suis en train de lire de la doc pour faire des JOIN, mais n'ayant jamais utilisé ça encore, je patauge, je patauge...
EDIT : J'ai réussi à le faire pour une colonne, pas très difficile dans l'absolu :
Mais pour gérer les 2 autres colonnes, alors là je sèche !
EDIT : J'ai réussi à le faire pour une colonne, pas très difficile dans l'absolu :
SELECT joueur1, COUNT(joueur1) AS nbjoueur1 FROM sandbox GROUP BY joueur1 ORDER BY nbjoueur1 DESC LIMIT 0,10
Mais pour gérer les 2 autres colonnes, alors là je sèche !
Il y a certainement possibilité de le faire en une requête avec du select du max des sum de count.
Mais mieux vaut le faire en 2 temps ;-)
Mais mieux vaut le faire en 2 temps ;-)
Bonjour,
Pour faire le count sur tes trois colonnes, peut-être essayer la solution de Toxine sur ce post => https://forums.commentcamarche.net/forum/affich-9023738-sql-count-distinct-sur-2-champs
Enfin... partir de là.
Pour faire le count sur tes trois colonnes, peut-être essayer la solution de Toxine sur ce post => https://forums.commentcamarche.net/forum/affich-9023738-sql-count-distinct-sur-2-champs
select count(*) from ma_table WHERE siren IN (select distinct siren from ma_table) AND nic IN (select distinct nic from ma_table)
Enfin... partir de là.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question