解决方案 »

  1.   

    这个意思?select s_id,s_name,sum(s_score) s_score from t group by s_id,s_name order by s_id
      

  2.   

    你是要查各科总分第一的学生吧,如下:
    select * from (select s.*, dense_rank() over(partition by s.s_cname order by s_score desc) pm) where pm = 1
      

  3.   

    你是要查询每个学生所有课程的总学分是多少?
    还是什么?
    你这题目不清晰 ,
    表达的,
    叫人好难回答啊!假设:题目是 查询每个学生所有课程的总学分,还有学号唯一select s_id,s_name,sum(s_score) total_score from stu group by s_id,s_name order by s_id 
      

  4.   

    很抱歉没有说清楚,是找出总分最高的学生的姓名
    先按照每个学生的学生id进行分组,求出每个学生的总分,这是一个子查询。然后在子查询中,找到最大的值对应的学生id就行了
      

  5.   

    select s_name from (select s.*, dense_rank() over(partition by s.s_cname order by s_score desc) pm) where pm = 1
      

  6.   

    这个你先用个子查询把每个人学生的总分数查出来;
    然后再选题第一名!
    你可以先用两个SQL语句写!然后合并
      

  7.   

     select * from
     (select s_id,s_name,s_cname,s_score from stu where s_cname ='英语' order by s_score desc)
     where rownum =1
     union
      select * from
     (select s_id,s_name,s_cname,s_score from stu where s_cname ='物理'order by s_score desc)
      where rownum =1
     union
       select * from
     (select s_id,s_name,s_cname,s_score from stu where s_cname ='数学'order by s_score desc)
     where rownum =1;