select top 2 StudentID,courseID,Achievement
from StudentAchievement
group by CourseID,StudentID,Achievement

解决方案 »

  1.   

    select StudentID,CourseID,Achievement
     from StudentAchievement a
     where StudentID in(select top 2 StudentID from StudentAchievement
                        where CourseID=a.CourseID order by Achievement desc)
     order by CourseID,Achievement desc
      

  2.   

    第6次看到这个问题:Select * from  StudentAchievement A Where  Exists(
    select 1 from StudentAchievement 
    Where CourseID=A.CourseID And Achievement>A.Achievement 
    Having Count(*)<=1
    )
    Order by CourseID,Achievement Desc或者:Select *
    From StudentAchievement a
    Where StudentID in (Select Top 2 StudentID 
                        From StudentAchievement
                        Where CourseID=a.CourseID 
                        Order by Achievement desc)
    order by CourseID,Achievement desc