高手指点一下,一道SQL题

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:29:56
设计一个不带嵌套的查询语句,去掉一个最高分,一个最低分.计算平均分.再按分数高低进行排列.表样式如下:
选手 评委 得分
1 1 8
1 2 7
1 3 9
1 4 8
2 1 6
2 2 9
2 3 6
2 4 7
3 1 5
3 2 8
3 3 7
3 4 6
4 1 9
4 2 8
4 3 8
4 4 6
5 1 5
5 2 7
5 3 5
5 4 6
有谁还能给我更准确的答案呀!谢谢

应为:
SELECT AVG(得分) FROM 表 GROUP BY 选手 HAVING 得分<=MAX(得分) AND 得分>=MIN(得分) ORDER AVG(得分) ASC
因为最高分不一定只一个。
另:HAVING是怎么作用的?我不知道是在AVG以前还是AVG以后。
----------------------------
刚才想起来,应该是
SELECT (SUM(得分)-MAX(得分)-MIN(得分))/COUNT(得分) AS 最终得分 FROM 表 GROUP BY 选手 ORDER BY 最终得分

select avg(得分) from 表名 group by 选手 having 得分<max(得分) and 得分〉min(得分) order by 得分 Asc

尝试一下,如果还有问题,加我QQ:80359948