sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur extraherar man medianvärdet?

Jag tror att den enklaste metoden är PERCENTILE_CONT() eller 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;

Detta förutsätter (rimligen) att score är numerisk.

Skillnaden mellan PERCENTILE_CONT() och PERCENTILE_DISC() är vad som händer när det finns ett jämnt antal värden. Det är vanligtvis ett oviktigt övervägande, om du inte har en liten mängd data.



  1. Ska du använda förberedda uttalanden endast för att de ska fly?

  2. Som skiftlägeskänslig i MySQL

  3. Inkludera Config och Database från andra filer

  4. Hur man exporterar och importerar befintlig användare (med dess privilegier!)