2 votes

Obtenez la deuxième plus grande marque de la table MySQL

J'ai une table student avec les champs id, name et mark. J'ai besoin d'obtenir le(s) nom(s) de l'étudiant ayant la deuxième plus grande note.

J'ai essayé :

SELECT DISTINCT name FROM stud ORDER BY mark DESC LIMIT 2,1

mais cela ne renvoie qu'un seul nom d'étudiant ayant la deuxième plus grande note.

J'ai besoin de lister tous les noms des étudiants si beaucoup d'entre eux ont la deuxième plus grande note.

Comment puis-je le faire ?

5voto

Tomalak Points 150423
SELECT DISTINCT
  name, mark
FROM
  stud 
WHERE
  mark = (SELECT MAX(mark) FROM stud WHERE mark < (SELECT MAX(mark) FROM stud))
ORDER BY
  name

0voto

agurchand Points 1465

Ceci est également similaire à ce qui précède.

SELECT DISTINCT name, mark
FROM stud WHERE mark = (SELECT mark FROM stud ORDER BY mark DESC LIMIT 1, 1)
ORDER BY name

0voto

Manithan Points 9

Nous allons obtenir la deuxième plus grande marque du tableau des haras en utilisant la requête ci-dessous.

SELECT a.* 
FROM
  stud as a 
WHERE
  2= (SELECT COUNT(b.id) FROM stud as B WHERE a.mark <=b.mark)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X