在Oracle数据库里面 我有两张表
一张students(学生信息表)  一张class(班级表) 
 现在我想输出人数最多的班级,且输出的字段要包含 班级ID  班级名 学生数 三个字段 请问在Oracle里面怎么写

解决方案 »

  1.   

    select a.classid,a.classname,max(rs) from class a,
     (select classid,count(*) rs from students group by classid) b
    where a.classid=b.classid
      

  2.   

    select s.classid, c.classname,count(s.classid) as 数量 from students s,class c where s.classid in(select c.classid from class) group by s.classid,c.classname
     order by 数量 desc这个只是将所有班级人数全部查询出来
    我加上top 1 提示 ORA-00923:未找到from的关键字
      

  3.   

    select a.classid,a.classname,max(rs) from class a,
     (select classid,count(*) rs from students group by classid) b
    where a.classid=b.classid  group by a.classid,a.classname
      

  4.   

    我搞错了,没看清楚你的问题
    select * from 
    (select b.classid,b.classname,count(*) rs from students a , class b where a.classid=b.classid group by b.classid,b.classname order by count(*) desc) where rownum=1
    这个会显示最多的第一条记录,出现重复的则只显示一条
      

  5.   

    select b.classid,b.dname,rs
    (select classid,count(*) rs,dank()over(order by count(*) desc) rn from students group by  classid) a,class b  where rn=1 and a.classid=b.classid这能就查询出相同人数并且人数最多的班级