requete top10 d'une table

lynx344
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 19 Déc 2007

requete top10 d'une table

Message le Mer Déc 19, 2007 11:38

bonjour,


voila j'ai une table qui contient une liste d'enregistrement correspondant aux concours (math , physique, anglais etc etc.)
JE souhaite faire une requete qui m'affiche les top10 des concours réussit.

Pour info jai des champs tel que :
id_concours : donne l'id du concour ( 20 id differents)
date_optention : date d'optention du concour


J'arrive donc à avoir la liste des connours réussit mai comment avoir le classement par id_concour qui me donne les 10 concours les plus
réussit :

SELECT 'id_concours' FROM `concours` WHERE `date_optention` IS NOT NULL AND `attestation_status`='success' ;


merci,


oli004
WRInaute passionné
WRInaute passionné
 
Messages: 2173
Inscription: 5 Jan 2005

Message le Mer Déc 19, 2007 11:43

SELECT 'id_concours' FROM `concours` WHERE `date_optention` IS NOT NULL AND `attestation_status`='success' ORDER BY ?????? ;

LE top 10 est basé sur quel critère ?

en quoi un concours serait-il meilleur qu'un autre ?

peux tu préciser, ou alors je n'ai pas compris ta requete

lynx344
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 19 Déc 2007

Message le Mer Déc 19, 2007 11:52

merci pour ta reponse rapide !

je vais expliquer tout ca :
j'ai la table concour qui me donne la liste des tous les eleves qui ont eu ou pas les concours.
avec id_eleve, id_concour et date_obtention
SI date d'obtention est diffente de NULL et que attestation_status`='success' alors l'eleve (id_eleve) a reussit son concour (id_coucour)
JE veu avoir le top10 des concours. cad le classement des 10 premiers concours reussit.
j'arrive a avoir la liste par ma requete mais comment classer par id_concour et avoir le classement?

Merci


oli004
WRInaute passionné
WRInaute passionné
 
Messages: 2173
Inscription: 5 Jan 2005

Message le Mer Déc 19, 2007 13:09

as tu essayé ça ?


SELECT 'id_concours' FROM `concours` WHERE `date_optention` IS NOT NULL AND `attestation_status`='success' ORDER BY 'id_concours' DESC LIMIT 10 ;

et je pense que je dois être à la rammase ce matin car je ne saisi toujours pas quelles valeurs peuvent t'etre retournées.

j'ai la table concour qui me donne la liste des tous les eleves qui ont eu ou pas les concours.
avec id_eleve, id_concour et date_obtention


ok, mais je ne vois pas de "note" par exemple 18/20

SI date d'obtention est diffente de NULL et que attestation_status`='success' alors l'eleve (id_eleve) a reussit son concour (id_coucour)


ok, ça te dis juste si un eleve a eut le concours

JE veu avoir le top10 des concours. cad le classement des 10 premiers concours reussit.


ça je ne comprends toujours pas !!!

quel est ton critère de classement pour ce top 10 lorsque tu dis les 10 premiers ?

est ce les 10 plus rescents , les 10 classés par ordre alphabétique, .... ????

J'aimerai connaitre ce qui fait qu'un résultat est devant l'autre


SuperCureuil
WRInaute impliqué
WRInaute impliqué
 
Messages: 673
Inscription: 9 Mar 2007

Message le Mer Déc 19, 2007 13:50

AMHA, il veut connaître les 10 concours les plus réussis, autrement dit ceux où le taux de réussite est le plus élevé du plus réussi au moins réussi.

Mais je n'y vois pas clair, j'ai l'impression qu'il manque des champs. La structure complète de la table aiderait un peu :wink:

@+

lynx344
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 3
Inscription: 19 Déc 2007

Message le Mer Déc 19, 2007 15:14

je vais essayer d'etre plus clair.
J'ai donc une table qui contient les enregistrements de tous les concours réussit ou pas par les eleves.

id_eleve id_concours date_optention
1 55 12/10/2006
1023 128 12/10/2005
1026 123
56 128 12/10/2006
89 55 10/10/2005
563 128 10/10/2007

dans l'exemple l'eleve 1026 n'as pas eu le concours car pas de date
DOnc avec ma requete j'ai bien la liste des tous les concours reussit
MAintenant ce que je veu cest la top10 liste avec mon exemple ci dessus ca donnerai :

classement id_concours
1 128
2 55
etc
jusqu'au rang 10.


cela vous semble clair ?

merci.

steph2908
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 19 Déc 2007

Message le Mer Déc 19, 2007 15:21

Je suppose aussi que tu cherche a faire le classment des 10 coucours les mieux reussis

soit liste_concours la table de listing de tes ~20 concours
et concours la table des resultats
(jointure sur id_concours)
je ferais comme ceci:
Code: Tout sélectionner
SELECT liste_concours.*, count(concours.id_concours) as nb_reussis
FROM `liste_concours`
LET JOIN `concours` ON concours.id_concours=liste_concours.id_concours
WHERE `concours.date_optention` IS NOT NULL AND `concours.attestation_status`='success'
GROUP BY concours.id_concours
ORDER BY nb_reussis DESC LIMIT 10;


pas simple en extrapolant...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités