sous requete dans même table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : sous requete dans même table

Re: sous requete dans même table

par yann18 » 28 déc. 2018, 14:40

en même temps tu ne devrais quand même pas afficher 11000 enregistrements sans pourtant effectuer la pagination?
Tu peux placer la clause LIMIT 100 à la fin de la requête.

Re: sous requete dans même table

par stanak » 28 déc. 2018, 09:28

merci beaucoup pour ta réponse
ça fonctionne !
mais avec 11000 élèves dans 550 classes
ça prend 6 à 7s de traitement :-(

Re: sous requete dans même table

par yann18 » 28 déc. 2018, 00:31

salut,
avec mysql 5:
SELECT e1.classe, e1.prenom, e1.note FROM eleves e1
WHERE ( 
		SELECT COUNT(1) FROM eleves e2  WHERE e2.classe = e1.classe AND e2.note<=e1.note
		) <= 2
ORDER BY e1.classe, e1.note		
sinon avec mysql 8, il devient plus facile de faire un classement avec la fonction RANK() et l'argument PARTITION BY qui partitionne un jeu de resultat

sous requete dans même table

par stanak » 27 déc. 2018, 11:24

table :
classe | prenom | note
CM2      JULES    15
CM2      YANN     12
CM2      NOEL      8
CM2      ABDEL    13
CM1      LILOU    16
CM1      ZOE       4
CM1      JEAN     11
Bonjour et bonnes fêtes à tous,

voilà mon problème sur lequel je bute
j'aimerais sélectionner les 2 moins bons de chaque classe
j'imagine qu'il faut une utiliser sous requête
mais j'avoue que je ne vois pas comment m'y prendre
merci de votre aide