这么简单的数据库面试题,第一眼竟无从下手。。

举报
桃花键神 发表于 2022/03/21 21:44:44 2022/03/21
【摘要】 这么简单的数据库面试题,第一眼竟无从下手。。

🔎这里是MYSQL数据库加油站
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

前段时间朋友发给我一个数据库面试题,第一眼竟不知从何下手!

下面一起来看一看这个题吧!

学生成绩表
在这里插入图片描述

问题一:一条sql语句查询出成绩排第三的学生信息

分析: 想要查出成绩排行第三的学生信息,要进行三次查询。

  • 首先要将成绩进行排序,查询出排序后的成绩和排名。
  • 然后在第一次查询出的结果中查询出排名第三的成绩。
  • 最后根据学生成绩在student表中查询出学生信息
-- 第三次查询
SELECT id,name,score FROM student WHERE score=(
-- 第二次查询
select score FROM (
-- 第一次查询
select score,concat(RANK() over(ORDER BY score desc))acb FROM student
)ace WHERE acb=3)

在这里插入图片描述

问题二:查询学生信息和成绩评价,成绩>=80为优秀,成绩>=60为及格,成绩<60为不及格。

分析:在学生信息后面多显示一个字段为成绩评价,if判断成绩。

select id,name,score,if(80<=score,'优秀',if(60<=score,'及格','不及格'))评价 from student

在这里插入图片描述

问题三:以优秀,及格,不及格分组并统计每组的个数

分析:直接在问题二的表上进行分组统计

select le 评价,count(*) 人数 from (select id,name,score,if(80<=score,'优秀',if(60<=score,'及格','不及格'))le from student) as t group by t.le;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。