Je pense que la méthode la plus simple est PERCENTILE_CONT()
ou PERCENTILE_DISC()
:
SELECT MIN(score) as min_score,
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY score) as median_score,
MAX(score) max_score
FROM result r JOIN
student s
ON s.id = r.student_id;
Cela suppose (raisonnablement) que score
est numérique.
La différence entre PERCENTILE_CONT()
et PERCENTILE_DISC()
est ce qui se passe lorsqu'il y a un nombre pair de valeurs. C'est généralement une considération sans importance, sauf si vous disposez d'une petite quantité de données.