【题目】
“学生表”里记录了学生的学号、入学时间等信息。“成绩表”里是学生选课成绩的信息。两个表中的学号一一对应。(滴滴2020年面试题)
现在需要:
1. 筛选出2017年入学的“计算机”专业年龄最小的3位同学名单(姓名、年龄)
2. 统计每个班同学各科成绩平均分大于80分的人数和人数占比
【解题思路】
问题1:筛选出2017年入学的“计算机”专业年龄最小的3位同学名单(姓名、年龄)
一看是不是有点懵?
别着急,我们用逻辑树分析方法,把这个复杂问题拆解为一个一个可以解决的简单问题:
1)筛选条件:入学时间是2017,专业是计算机
2)最小的3位同学名单(姓名、年龄)
1.先找出符合要求的同学
筛选条件:入学时间是2017,专业是计算机。year(日期)函数用来获取日期的年份
select 姓名,年龄
from 学生表
where 专业='计算机' and year(入学时间)=2017;
2.最小的3位同学名单(姓名、年龄)
先使用order by对年龄排序(从小到大,也就是升序asc),然后使用limit输出前3行数据,就是年龄最小的3位。
<