数据库,SQL查询

一张表中含学号,科目,成绩3列。查询其中每个学生前三好的成绩,按学号成绩排序。... 一张表中含学号,科目,成绩3列。查询其中每个学生前三好的成绩,按学号成绩排序。 展开
 我来答
badkano
2013-09-11 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885365
团长

向TA提问 私信TA
展开全部

什么数据库啊

 

给你个适用于sqlserver2005以上或oracle10G以上

select t.* 差族中from
(select 表虚山名.*,row_number() over (partition by 学号 order by 成绩 desc) 穗饥rn from 表名) t
where rn<=3 order by t.学号,t.成绩 desc
更多追问追答
追问
MySql,不知道适用不
追答

mysql可能不适用

 

得用这个,你把表名换一下你自己的

select * from 
(select 学号,科目,成绩,rank from (  
  select 学号,科目,成绩,@rownum:=@rownum+1 ,  
  if(@学号=t_tmp.学号,@rank:=@rank+1,@rank:=1) as rank,  
  @学号:=t_tmp.学号  
  from (   
  select 学号,科目,成绩 from 表名 order by 学号 asc ,成绩 desc   
  ) t_tmp , 
  (select @rownum :=0 , @学号 := null ,@rank:=0) a  
) result) s
where rank<=3;
数位汇聚
2023-08-28 广告
1、数位观察新增一个数据搜索平台:数位观察,不用费力的去各个平台找数据,通过这个平台搜索或勾选需要的标签就行,就能找到各个维度的数据。提供12大类、50多万个数据和数据报告(基本上覆盖了市面上所有细分行业)。在网站首页就有全面又详细的数据分... 点击进入详情页
本回答由数位汇聚提供
daiyi19812012
2013-09-11 · TA获得超过158个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:112万
展开全部
mysql
select * from table limit 0,3 order by 成绩 desc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖豆羊By
高粉答主

2020-11-29 · 每个回答都超有意思的
知道答主
回答量:8.6万
采纳率:2%
帮助的人:4250万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式