Penso che il metodo più semplice sia PERCENTILE_CONT()
o 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;
Ciò presuppone (ragionevolmente) quel score
è numerico.
La differenza tra PERCENTILE_CONT()
e PERCENTILE_DISC()
è ciò che accade quando ci sono un numero pari di valori. Di solito è una considerazione irrilevante, a meno che tu non disponga di una piccola quantità di dati.