--示意
select sum(value)-max(value)-min(value)/(sum(1)-2) 
from tb
group by col

解决方案 »

  1.   


    create table T1
    (
    ID int,
    [Content] nvarchar(10)
    )
    insert T1 values('1','第一个作品')
    insert T1 values('2','第二个作品')
    insert T1 values('3','第三个作品')create table T2
    (
    ID int,
    [Content] nvarchar(10),
    MaxScore int
    )
    insert T2 values(1,'内容不少于两千字',30 )
    insert T2 values(2,'内容要精典',      40 )
    insert T2 values(3,'内容要接近实近',  50 )create table T3
    (
    ID int,
    RealName nvarchar(10)
    )
    insert T3 values(1,      '小张' )
    insert T3 values(2,      '小刘' )
    insert T3 values(3,      '小李' )
    insert T3 values(4,      '小王' )create table T4
    (
    ID  int,
    [作品ID] int,
    [评比标准ID] int,
    [评委ID] int,
    [分值] int 
    )
    insert T4 values(1,        1,        1,          1,        20) 
    insert T4 values(1,        1,        2,          1,        20) 
    insert T4 values(1,        1,        3,          1,        20) 
    insert T4 values(1,        2,        1,          1,        20) 
    insert T4 values(1,        2,        2,          1,        10) 
    insert T4 values(1,        2,        3,          1,        30) 
    insert T4 values(1,        3,        1,          1,        5) 
    insert T4 values(1,        4,        2,          1,        10) 
    insert T4 values(1,        4,        3,          1,        10) insert T4 values(1,        1,        1,          2,        20) 
    insert T4 values(1,        1,        2,          2,        20) 
    insert T4 values(1,        1,        3,          2,        20) 
    insert T4 values(1,        2,        1,          2,        20) 
    insert T4 values(1,        2,        2,          2,        10) 
    insert T4 values(1,        2,        3,          2,        30) 
    insert T4 values(1,        3,        1,          2,        5) 
    insert T4 values(1,        4,        2,          2,        10) 
    insert T4 values(1,        4,        3,          2,        10)
     
    insert T4 values(1,        1,        1,          3,        20) 
    insert T4 values(1,        1,        2,          3,        20) 
    insert T4 values(1,        1,        3,          3,        20) 
    insert T4 values(1,        2,        1,          3,        20) 
    insert T4 values(1,        2,        2,          3,        10) 
    insert T4 values(1,        2,        3,          3,        30) 
    insert T4 values(1,        3,        1,          3,        5) 
    insert T4 values(1,        4,        2,          3,        10) 
    insert T4 values(1,        4,        3,          3,        10) ;
    with 
    tmp AS(
    select [作品ID],[评委ID],sum([分值]) as [分值],Row_Number() over(partition by [作品ID] order by [作品ID],sum([分值])) as RowID
    from T4
    group by [作品ID],[评委ID]

    select [作品ID],avg([分值]) as 平均分值,dense_rank() over(order by avg([分值]) desc) as 排名
    from tmp as A
    where RowID between 2 and (select max(RowID)-1 from tmp where [作品ID]=A.[作品ID])
    group by [作品ID]
      

  2.   

    select sum(value)-max(value)-min(value)/(sum(1)-2) 
    from tb
    group by col