PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment extraire la valeur médiane ?

Je pense que la méthode la plus simple est PERCENTILE_CONT() ou 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;

Cela suppose (raisonnablement) que score est numérique.

La différence entre PERCENTILE_CONT() et PERCENTILE_DISC() est ce qui se passe lorsqu'il y a un nombre pair de valeurs. C'est généralement une considération sans importance, sauf si vous disposez d'une petite quantité de données.