Myslím, že nejjednodušší metodou je PERCENTILE_CONT()
nebo 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;
To předpokládá (přiměřeně), že score
je číselný.
Rozdíl mezi PERCENTILE_CONT()
a PERCENTILE_DISC()
je to, co se stane, když existuje sudý počet hodnot. To je obvykle nedůležité, pokud nemáte malé množství dat.