Ich denke, die einfachste Methode ist PERCENTILE_CONT()
oder 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;
Dies setzt (vernünftigerweise) voraus, dass score
ist numerisch.
Der Unterschied zwischen PERCENTILE_CONT()
und PERCENTILE_DISC()
passiert, wenn es eine gerade Anzahl von Werten gibt. Dies ist normalerweise eine unwichtige Überlegung, es sei denn, Sie haben eine kleine Datenmenge.