J'ai actuellement une table 'classede3e' qui reprend des noms d'élèves et leur présence / absence par jour (ici en résumé car il y a au moins 20 dates et 15 élèves) :
;id;nom;date;presence;id_eleve;
;1;Francois;01-02-2022;Présent;4;
;2;Jean;01-02-2022;Absent;6;
;3;Fred;01-02-2022;Présent;8;
;4;Lucy;01-02-2022;Présent;10;
;5;Francois;02-02-2022;Absent;4;
;6;Jean;02-02-2022;Absent;6;
;7;Fred;02-02-2022;Présent;8;
;8;Lucy;02-02-2022;Présent;10;
;9;Francois;08-02-2022;Présent;4;
;10;Jean;08-02-2022;Absent;6;
;11;Fred;08-02-2022;Présent;8;
;12;Lucy;08-02-2022;Présent;10;
;13;Francois;09-02-2022;Présent;4;
;14;Jean;09-02-2022;Présent;6;
;15;Fred;09-02-2022;Absent;8;
;16;Lucy;09-02-2022;Présent;10;
;17;Francois;15-02-2022;Présent;4;
;18;Jean;15-02-2022;Absent;6;
;19;Fred;15-02-2022;Absent;8;
;20;Lucy;15-02-2022;Présent;10;
La colonne id_eleve reprend l'id de cet élève trouvé dans la table globale des inscrits. Cette info pourrait être utile dans mon explication ci après.
Nous aimerions afficher sur les stats de la page de la classe de 3e l'élève le plus présent et l'élève le moins présent.
Pour le moment, je fais ces requêtes :
Pour les présents :
SELECT id_joueur as IDNAME FROM `classede3e` WHERE present LIKE '%Pr%' ORDER BY present LIKE '%Pr%';
Et pour les absents : SELECT id_joueur as IDNAME FROM `classede3e` WHERE present LIKE '%Abs%' ORDER BY present LIKE '%Abs%'; Avec ces requêtes, j'obtiens la liste complète et répétée des élèves, et autant de fois répétée qu'il n'y a de dates.
J'aurais aimé afficher l'élève ayant le plus de présences et celui ayant le plus d'absences (ou les 3 premiers de chaque liste).
J'ai mis un LIMIT 1 mais j'obtiens le dernier enregistrement de la liste complète.
Mes requêtes ci-dessus sont elles valables ?
Comme je disais plus haut, la liste globale des élèves est disponible dans une table unique 'inscrits'.
J'ai pensé créer deux colonnes dans cette table pour faire enregistrer le nombre de présences et une autre colonne pour faire enregistrer le nombre d'absences, a chaque fois mis à jour lors de la prise des présences via un update + 1 de la colonne adéquate.
Quelle serait la meilleure solution ? Voyez-vous une autre façon de construire la requête ?