日期:2014-05-17  浏览次数:20888 次

求个统计数据sql查询语句
统计某班某学期每个学生最终成绩(表里只有该班该学期的数据)
表:id(number,主键),stunum(varchar2,学号),stuname(varchar2,姓名),mark(varchar2,成绩)

1.学号+姓名 确定学生的唯一性
2.一学期里每个学生都有多次成绩,最高分为有效成绩

查询结果:查询出这学期这个班每个学生的有效成绩
例:表数据(1,110,张三 60),(2,110,张三 70),(3,115,张三 60),此为2人

------解决方案--------------------
SQL code

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

------解决方案--------------------
SQL code
select t.stunum,t.stuname,max(mark)  mark
from t
group by  t.stunum,t.stuname

------解决方案--------------------
探讨

SQL code

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

------解决方案--------------------
select stunum, stuname,max(mark)
from table
group by stunum, stuname