Je ferai requête décroissant et je n'en demanderai que 3 et après la moyenne
<Guy> a écrit dans le message de news:
Bonjour, ma connaissance d'access est insuffisante pour monter la requete suivante :
j'ai besoin de faire la moyenne des seules trois meilleures notes d'une population ayant au moins trois participations aux épreuves.
Merci G
3stone
Salut,
<Guy> a écrit | ma connaissance d'access est insuffisante pour monter la requete suivante : | | j'ai besoin de faire la moyenne des seules trois meilleures notes d'une | population ayant au moins trois participations aux épreuves.
Essaies ceci :
SELECT c.NG, Avg(c.Notes) AS MoyenneDeNotes FROM (SELECT * FROM TableX AS a WHERE ( ((a.ID) In (SELECT TOP 3 b.ID FROM TableX AS b WHERE a.NG=b.NG ORDER BY b.Notes DESC))) ORDER BY a.NG, a.Notes DESC) AS c GROUP BY c.NG;
NG représente le "numéro du groupe", ta population... ID représente la PK, la clé primaire des enregistrements
et il y à un défaut : Un TOP 3 ramène plus de 3 enregistrements en cas d'égalité de la troisième valeur.
ainsi, de 10, 9, 8, 8, 7, 7, 6 le top 3 ramène 10, 9, 8, 8
Pas mieux sans programmation et ouverture d'un recordet que l'on peut lire pas à pas ;-)
<Guy> a écrit
| ma connaissance d'access est insuffisante pour monter la requete suivante :
|
| j'ai besoin de faire la moyenne des seules trois meilleures notes d'une
| population ayant au moins trois participations aux épreuves.
Essaies ceci :
SELECT c.NG, Avg(c.Notes) AS MoyenneDeNotes
FROM (SELECT * FROM TableX AS a
WHERE ( ((a.ID) In (SELECT TOP 3 b.ID FROM TableX AS b
WHERE a.NG=b.NG ORDER BY b.Notes DESC)))
ORDER BY a.NG, a.Notes DESC) AS c
GROUP BY c.NG;
NG représente le "numéro du groupe", ta population...
ID représente la PK, la clé primaire des enregistrements
et il y à un défaut : Un TOP 3 ramène plus de 3 enregistrements
en cas d'égalité de la troisième valeur.
ainsi, de 10, 9, 8, 8, 7, 7, 6 le top 3 ramène 10, 9, 8, 8
Pas mieux sans programmation et ouverture d'un recordet
que l'on peut lire pas à pas ;-)
<Guy> a écrit | ma connaissance d'access est insuffisante pour monter la requete suivante : | | j'ai besoin de faire la moyenne des seules trois meilleures notes d'une | population ayant au moins trois participations aux épreuves.
Essaies ceci :
SELECT c.NG, Avg(c.Notes) AS MoyenneDeNotes FROM (SELECT * FROM TableX AS a WHERE ( ((a.ID) In (SELECT TOP 3 b.ID FROM TableX AS b WHERE a.NG=b.NG ORDER BY b.Notes DESC))) ORDER BY a.NG, a.Notes DESC) AS c GROUP BY c.NG;
NG représente le "numéro du groupe", ta population... ID représente la PK, la clé primaire des enregistrements
et il y à un défaut : Un TOP 3 ramène plus de 3 enregistrements en cas d'égalité de la troisième valeur.
ainsi, de 10, 9, 8, 8, 7, 7, 6 le top 3 ramène 10, 9, 8, 8
Pas mieux sans programmation et ouverture d'un recordet que l'on peut lire pas à pas ;-)