统计某班某学期每个学生最终成绩(表里只有该班该学期的数据)
表:id(number,主键),stunum(varchar2,学号),stuname(varchar2,姓名),(varchar2,成绩)1.学号+姓名 确定学生的唯一性
2.一学期里每个学生都有多次成绩,最高分为有效成绩查询结果:查询出这学期这个班每个学生的有效成绩
例:表数据(1,110,张三 60),(2,110,张三 70),(3,115,张三 60),此为2人

解决方案 »

  1.   

    搞不懂 ,(varchar2,成绩) 成绩也是 varchar2 的?
      

  2.   

    select stnum,stuname,max()  from (
    select 1 id,110 stnum ,'张三' stuname, 60  from dual
    union all
    select 2 id,110 stnum ,'张三' stuname, 70  from dual
    union all
    select 3 id,115 stnum ,'张三' stuname, 60  from dual
    )a  group by stnum,stuname这个是否满足你要求?
      

  3.   


    select *
      from (select t.*,
                   ROW_NUMBER() over(partition by stunum, stuname order by  desc) rn
              from temp_s t)
     where rn = 1
      

  4.   

    temp_s 就是根据你 的说明建立的表,三条数据
        ID STUNUM STUNAME MARK
    1 1 110 张三 60
    2 2 110 张三 70
    3 3 115 张三 60
      

  5.   

    select t.stunum,t.stuname,max()  
    from t
    group by  t.stunum,t.stuname
      

  6.   

    select stunum, stuname,max()
    from table
    group by stunum, stuname
      

  7.   

    谢谢大家,6楼的的确就可以满足我想要的sql语句了
      

  8.   

    select t.stunum,t.stuname,max(to_number())   from astu t group by  t.stunum,t.stuname