group by 中有计算问题的问答整理

来源:互联网 发布:java方法调用数组 编辑:程序博客网 时间:2024/06/10 05:44

group by 中有计算问题的问答整理

 

被评分人 评分人  评分
张        李      12
陈        李      12
冯        李      12
杨        李      12
陈        张      12
李        张      12
冯        张      12
杨        张      12
张        冯      12
李        冯      12
杨        冯      12
陈        冯      12
张        杨      12
李        杨      12
冯        杨      12
陈        杨      12

张        陈      12
冯        陈      12
杨        陈      12
李        陈      12
select 被评价人,avg(评分) from test group by 被评价人
我想问一下在这里求平均分的时候,我想得到去掉每个被评价人的一个最高分和一个最低分然后再求平均分有什么办法呢?

 

-- Test Data: # --整理zjcxc给出的方法IF object_id('#') is not NULL Drop table #else Create table # (被评分人 nvarchar(20),评分人 nvarchar(20),评分 int)Goinsert #select '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' Union allselect '','','12' --(20 行受影响)--select * from #select 被评分人, (SUM(评分) - MIN(评分) - MAX(评分)) / (COUNT(*) - 2) 得分from # group by 被评分人 /*被评分人 得分陈 12冯 12李 12杨 12张 12*/