Мисля, че най-простият метод е PERCENTILE_CONT()
или 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;
Това предполага (разумно), че score
е числово.
Разликата между PERCENTILE_CONT()
и PERCENTILE_DISC()
е какво се случва, когато има четен брой стойности. Това обикновено е маловажно съображение, освен ако нямате малко количество данни.