用sql语句,查询每个班级成绩排名前三名的学生姓名

 我来答
小白聊电子科技
高粉答主

2020-11-29 · 专注电子数码问题解答
小白聊电子科技
采纳数:775 获赞数:75410

向TA提问 私信TA
展开全部

1、首先在打开的SQL Server中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。

2、此时就能利用Select和From语句,查询数据,如下图所示。

3、但是要查找姓名中包含有【张】,那么不能用等号,如下图所示。

4、因此一定要必须使用Like关键字,才能查询SQL的数据。

5、这个时候,如果单对【张】字后加个百分号是不允许的,这样只能查找姓张的数据。

6、如果想要前后都有关键字【张】,那么一定要在前后都加百分号,就能实现模糊查找姓名。

石门程序猿
2013-09-23 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:91.1万
展开全部
你的数据结构是怎么样的呢?
是否已经计算了总分
假设已经计算了总分
前三名所有记录 列可以自定义 (列出前3名成绩总分 3种主流数据库写法)
sqlserver数据库:
select top 3 from 成绩表 order by 总分 desc
mysql数据库:
select * from 成绩表 order by desc 总分 desc limit 3
oracle数据库:
select * from 成绩表 order by desc 总分 ROWNUM <= 3

如果说没有给出总分
需要先计算总分
select (语文+数学+。。。)as total top 3 from 成绩表 order by total desc
然后其他数据库自己灵活运用你自己所使用的数据库的上述方法
追问
在Oracle中,本题是先把班级分组还是先按成绩排序
追答
先分组分组 然后再排序
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TheThinKing
2013-09-23 · TA获得超过552个赞
知道小有建树答主
回答量:599
采纳率:100%
帮助的人:471万
展开全部
select top 3 * from 成绩 group by 班级 order by 成绩
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
翔阿狗
2013-09-23 · TA获得超过208个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:197万
展开全部
思路是先分组后按成绩排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式