Requete jpql permettant de calculer le rang d'élèves par rapport a leur moyenne

Adoum -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,


pour plus de précision voila ma requete
(SELECT COUNT(*) + 1
FROM (SELECT DISTINCT e1.classe.id, e1.moyenne FROM Eleves AS e1 WHERE e1.classe.id=classe) AS e2
WHERE (e1.moyenne > e2.moyenne) AND (e2.classe.id = e1.classe.id)
)
Configuration: Windows / Chrome 88.0.4324.104

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Je ne vois pas l'intérêt de faire ce calcul via une requête. Tu peux juste récupérer les données brutes que tu veux via une requête simple puis les traiter programmatiquement avec tous les outils dont dispose Java, en l'occurrence un simple tri suffira.

List<Eleve> listEleve = // SELECT e FROM Eleve e WHERE e.classe.id = :idClasse
listEleve.sort(Comparator.comparing(Eleve::getMoyenne));
0