ms sql求平均值!

yubofighting 2010-11-03 01:32:35

id id2 item score newid
01 82 设定优先次序 1.00 9E652D8F-BF3A-49E1-8622-E9AEFEDA46FE
01 82 设定优先次序 5.00 2672357B-5E21-41C1-A6D9-F1A71DCD5B4A
01 82 设定优先次序 6.00 EBFFD0EF-1400-4BB3-86A4-DC545DCFBF95
01 82 设定优先次序 7.00 402A8FED-4D7F-4CBF-BEB8-09DDEADA894E
01 82 设定优先次序 7.00 B6366660-BAF0-4323-B9B4-21DFDA542078
01 83 善用资源 3.00 E83FD245-B151-4D7A-A273-4705DA581451
01 83 善用资源 7.00 4420C967-770C-4773-843F-1A305A447CF0
01 83 善用资源 7.00 30662322-B1EA-4748-89FF-365888D38C42
01 83 善用资源 7.00 77467DDA-945C-468A-9E3F-4E763D63D496
01 83 善用资源 7.00 29972294-B33C-4220-98CB-56D69991928E
01 83 善用资源 7.00 1D7B23DA-AA1C-4839-9436-6F6A8FCE6926
01 83 善用资源 7.00 9C1CEFF3-CC4A-49C1-9DA0-8CD1CC4ACF4C
01 83 善用资源 7.00 C2BBBDEC-5B37-4D28-B42D-A594A1ECA254
01 83 善用资源 7.00 B6DC9617-7456-41FD-8BC0-E9AF3EE6B15F
01 83 善用资源 8.00 2CA61E4B-BCE5-447B-AA89-650306B0F884
01 84 保持专注 4.00 8F2AB1D3-A9FF-4B0F-AD74-DB75DEF9FFB3
01 84 保持专注 7.00 2C531848-2DEE-44A5-A083-2766708051C0
01 84 保持专注 7.00 6B53EC65-5A96-4532-9EF2-458CA297197D
01 84 保持专注 7.00 2307115B-9DE4-4342-9557-8A34CAE8908D
01 84 保持专注 7.00 B8A458C9-A60B-4BCC-B270-977F96E4F6FA
01 84 保持专注 7.00 1CC158F0-0287-40AE-8157-B93A0AF09F98



想得到每项item的平均分,这个平均分时去掉最高分和最低分以后的平均分,如:设定优先次序=(5+6+7)/3=6
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
abuying 2010-11-03
  • 打赏
  • 举报
回复
--如果有两个相同的最高分,去掉其中之一
select item,
(case when max(score)>min(score)
then (sum(score)-max(score)-min(score))/(count(score)-2)
else null end) avg_score
from tb group by item;
claro 2010-11-03
  • 打赏
  • 举报
回复
--结果保留小数位
select item, (sum(score) -max(score) -min(score) )/count(1) as 平均分
from #a
group by item

--result:
item 平均分
------------ ----------------------
保持专注 4.66666666666667
善用资源 5.6
设定优先次序 3.6

(3 行受影响)


--结果保留整数位
select item, round((sum(score) -max(score) -min(score) )/count(1) ,0) as 平均分
from #a
group by item

--result:
item 平均分
------------ ----------------------
保持专注 5
善用资源 6
设定优先次序 4

(3 行受影响)

fpzgm 2010-11-03
  • 打赏
  • 举报
回复

select item,
(case when count(score)>2
then (sum(score)-max(score)-min(score))/(count(score)-2)
else null end) avg_score
from tb group by item;

xman_78tom 2010-11-03
  • 打赏
  • 举报
回复

select item,
(case when count(score)>2
then (sum(score)-max(score)-min(score))/(count(score)-2)
else null end) avg_score
from tb group by item;

guguda2008 2010-11-03
  • 打赏
  • 举报
回复
如果有相同的最高分,是都去掉还是只去掉一个

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧