现在有一张成绩表,字段如下:姓名,班级,学号,语文,数学,物理,化学
其中表中共有10个班级,现在希望达到的目标是:查询出表中语文成绩前200名中各个班级所占的学生个数。不知道这个select语句怎么写?

解决方案 »

  1.   

    select top 200 count(姓名) from 成绩表 group by 班级 order by 语文
      

  2.   


    select count(姓名) from 成绩表 group by 班级 HAVING 姓名 in
    (select top 200 姓名 from 成绩表 order by 语文)
      

  3.   

    select count(*) from (select top 200 班级 from 成绩表 order by 语文) group 班级
      

  4.   

    select count(*) from (select top 200 班级 from 成绩表 order by 语文) group by 班级
      

  5.   

    select 班级,count(班级) as 前200名人数 from u_StudentSchool where 姓名 in 
    (select top 200 姓名 from u_StudentSchool order by 语文 desc) group by (班级)
    注:有一个缺陷,如果第201名成绩和第200名一样,第201名被忽略
      

  6.   

    select count(姓名) from (select top 200 姓名 from 成绩表 order by 语文) group by 班级
      

  7.   

    select count(姓名),班级 from (select top 200 姓名,班级 from 成绩表 order by 语文) group by 班级
      

  8.   

    select count(班级) from (select top 200 班级 from 成绩表 order by 语文) group by 班级
      

  9.   

    select 班级,count(班级) from (select top 200 班级 from 成绩表 order by 语文 desc ) group by 班级
      

  10.   

    找到原因了,我原来也是按“select 班级,count(班级) from (select top 200 班级 from 成绩表 order by 语文 desc ) group by 班级”这种方式执行的,开始使用的是dbf表,老是报错,现在把dbf导入到access中后用相同的语句就可以了,真是奇怪,有没有办法直接在dbf中执行啊?