PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie kann man den Medianwert extrahieren?

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.