PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como extrair o valor mediano?


Acho que o método mais simples é 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;

Isso pressupõe (razoavelmente) que score é numérico.

A diferença entre PERCENTILE_CONT() e PERCENTILE_DISC() é o que acontece quando há um número par de valores. Isso geralmente é uma consideração sem importância, a menos que você tenha uma pequena quantidade de dados.