sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo extraer el valor de la mediana?

Creo que el método más simple es 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;

Esto supone (razonablemente) que score es numérico.

La diferencia entre PERCENTILE_CONT() y PERCENTILE_DISC() es lo que sucede cuando hay un número par de valores. Esa suele ser una consideración sin importancia, a menos que tenga una pequeña cantidad de datos.