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

解决方案 »

  1.   


    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;
      

  2.   


    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;
      

  3.   

    --结果保留小数位
    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 行受影响)
      

  4.   

    http://blog.csdn.net/claro/archive/2010/06/17/5675546.aspx
      

  5.   

    --如果有两个相同的最高分,去掉其中之一
    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;