班级  姓名 语文
一班  小小  78
一班  大大  68
二班  他他  70
二班  她她  60
想实现成
班级  平均分 平均分排名
一班    73      1
二班    65      2用的是access数据库,所以尽量用select 语句。感谢呀!主要求平均分会,主要是排名。

解决方案 »

  1.   

    select * ,row_number() over(order by 平均分) as 平均分排名
    from (
    select 班级,avg(语文) as 平均分
    from tb
    group by 班级
    )T
      

  2.   

    --access
    SELECT 班级,平均分
          ,1 + ( SELECT COUNT(*)
                 FROM ( SELECT 班级,AVG(语文) AS 平均分
                        FROM tb
                        GROUP BY 班级
                      )T
                 WHERE 平均分<TT.平均分
               ) AS 平均分排名
    FROM ( SELECT 班级,AVG(语文) AS 平均分
           FROM tb
           GROUP BY 班级
         )TT