怎么用sql查询班级前十名成绩的同学的姓名和分数(成绩相同的学生算同一个名次)

 我来答
寒默忧伤
2012-08-10 · TA获得超过550个赞
知道小有建树答主
回答量:759
采纳率:0%
帮助的人:429万
展开全部
select name,score from (

select name,score,dense_rank() over(order by score) "row" from t )
where "row"=10
追问
请问
dense_rank() 是什么意思
那两个人成绩相同的话只能显示一个学生的成绩 显示不了第二个人的,我想说的如果有两个人成绩相同时 那么要查找前10名最后显示出来的记录应该是11条记录,题目要求成绩相同算一个名次
追答
现在的不行吗?
你试试"row"<=10
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
felix521
2012-08-10 · TA获得超过857个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:119万
展开全部
先用group by以成绩分组,再用top取前十个。
select top 10 姓名,分数 from 成绩表
group by 成绩
更多追问追答
追问
那两个人成绩相同的话只能显示一个学生的成绩 显示不了第二个人的,我想说的如果有两个人成绩相同时 那么要查找前10名最后显示出来的记录应该是11条记录,题目要求成绩相同算一个名次
追答
我给的答案就是题目要求的,题目说,“用sql查询班级前十名成绩的同学的姓名和分数(成绩相同的学生算同一个名次)”最后得到的结果还是十个,并且题目只要求前十名成绩的同学的姓名和分数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潘问郜明辉
2020-04-11 · TA获得超过3678个赞
知道大有可为答主
回答量:3077
采纳率:31%
帮助的人:412万
展开全部
sql
数据库怎样检索出每个班级里总分数top10的学生姓名,并按班级和总分排名:
select
class,grade
from
student
group
by
class
having top10(grade)
这里用一下top方法就可以定位到你想要的那一行啦
希望我的回答对你会有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友af89816
2012-08-13 · TA获得超过241个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:87.1万
展开全部
取到排名的前十位:
with RK as(
select Stu_score,Stu_name,
DENSE_RANK()over(order by stu_score desc)as rank
from StudentScore) select top 10
RK.* from RK
取到排名的前十名:
with RK as(
select Stu_score,Stu_name,
DENSE_RANK()over(order by stu_score desc)as rank
from StudentScore) select
* from RK where RK.rank <='10'
追问
top在oracle和mysql里面根本就不能用
追答
我只用过sqlserver 不好意思啊
刚查了一下可以用rownum限制取到的行数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式