首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

帮忙写一Sql语句,该如何解决

2012-01-12 
帮忙写一Sql语句一张表有三个字段 学号,课程,成绩现在需要查询出每门课程的前三名(课程数未知)求各位帮帮

帮忙写一Sql语句
一张表有三个字段 学号,课程,成绩
现在需要查询出每门课程的前三名(课程数未知)


求各位帮帮忙,给个解!(最好附带写点说明--真心感谢)

[解决办法]

SQL code
select * from (select no=row_number() over(partition by 课程 order by 成绩 desc),* from tb) twhere no<4
[解决办法]
SQL code
select * from tab awhere (select count(*) from tab where 课程 = a.课程 and 成绩 >= a.成绩) <= 3
[解决办法]
SQL code
;WITHDD AS(SELECT C#,GRADE,ROW_NUMBER()OVER(PARTITION BY C# ORDER BY GRADE DESC) PMFROM SCGROUP BY C#,GRADE)SELECT *FROM DDWHERE PM<=3---/*结果:这是我的学生数据库 跟你要的一个样,这是这里保存的是课程号 你把它改为课程名就OKC#         GRADE                                   PM---------- --------------------------------------- --------------------042077     85.0                                    1042077     84.0                                    2042077     81.0                                    3042078     92.0                                    1042078     85.0                                    2042078     80.0                                    3042079     90.0                                    1042079     85.0                                    2 

热点排行