请问这个筛选语句sql如何写。

nmwwxxgg 2015-07-30 11:40:20
取出每个学科的前3名,
数据库如下
学号 科目 成绩
1 语文 80
2 语文 70
3 语文 90
4 语文 100
6 语文 50
1 数学 80
2 数学 70
3 数学 90
4 数学 100
6 数学 50
1 英语 80
2 英语 70
3 英语 90
4 英语 100
6 英语 50
.....
我想在上面的数据库筛选出出每个科目的前三名
请问sql 语句怎么写 谢谢。
...全文
254 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nmwwxxgg 2015-07-30
  • 打赏
  • 举报
回复
SELECT * FROM ( SELECT *,rn=ROW_NUMBER() OVER(PARTITION BY 科目 ORDER BY 成绩desc) FROM TB ) WHERE rn <=3 提示:where 附件有语法错误。
gw6328 2015-07-30
  • 打赏
  • 举报
回复

SELECT * FROM (
	SELECT *,rn=ROW_NUMBER() OVER(PARTITION BY 科目 ORDER BY 成绩desc) FROM TB 
) WHERE rn <=3
  • 打赏
  • 举报
回复
这个很简单的啊,,row_number()over (partition by 科目 order by 成绩 desc) 就好了。。。分组排序。。

11,850

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧