SELECT uid
,exam_id
,ROUND(AVG(new_score)) AS avg_new_score
FROM (
SELECT uid
,exam_id
,IF(max_score = min_score, score, (score-min_score)/(max_score-min_score)*100) as new_score
FROM(
SELECT uid
,exam_id
,score
,MAX(score) OVER(PARTITION BY exam_id) AS max_score
,MIN(score) OVER(PARTITION BY exam_id) AS min_score
FROM examination_info
JOIN exam_record USING(exam_id)
WHERE score IS NOT NULL AND difficulty = "hard"
) data1
) data2
GROUP BY exam_id,uid
ORDER BY exam_id, avg_new_score DESC

京公网安备 11010502036488号