Je rencontre un problème en écrivant une requête qui saisit/calcule la moyenne de trois scores aux tests spécifiques pour un étudiant. Considérez la table TEST_SCORES suivante:Obtenir le score AVG du score le plus élevé pour chaque test
ID Name TestCode Score
-----------------------------
119 Joe MCA 108
119 Joe BRT 98
119 Joe LPO 76
119 Joe BRT 111
119 Joe ALK 83
119 Joe MCA 100
119 Joe RTK 75
For my scenario, I only want to consider scores from the "MCA" test,
the "BRT" test, and the "RTK" test. I need the average of those tests.
Also, I want to take the highest grade received for those
tests (This is where I get stuck at). The following is what I have
so far:
SELECT A.ID, avg(A.Score)
FROM TEST_SCORES A
WHERE A.TestCode in ('MCA','BRT','RTK')
AND A.ID = 119
GROUP BY A.ID
Il y a plus d'une entrée de score pour cet étudiant pour le test « BRT » et le test « MCA ». J'essaie d'obtenir le score du test MAX pour chaque test. J'essaie d'utiliser une condition pour saisir le score maximum, mais je continue à me retrouver avec la période de test la plus élevée, contrairement à la moyenne des trois tests.
Toute aide à ce sujet serait grandement appréciée. Merci d'avance.
pouvez-vous publier le résultat attendu et marquer la base de données en cours d'utilisation? –
Votre question est source de confusion. Des sons comme vous voulez juste grouper par testcode, aussi, cependant. Vous savez, vous pouvez regrouper par plusieurs colonnes, non? – fancyPants
en effet, group by id, testcode devrait faire l'affaire. –