标签:帮助 http esc 重复 也会 要求 课程 lazy -o
每次面试必考 SQL,小编这几年一直吃 SQ 的亏,考题无非就是万年不变学生表, 看起来虽然简单,真正写出来,还是有一定难度。于是决定重新整理下关于 SQL 的面试题,也可以帮助更多的人过 SQL 这一关。
作为一个工作 3 年以上测试人员,不会 sql 基本上能拿到 offer 的希望渺茫,虽 然平常也会用到数据库,都是用的简单的查询语句。困难一点的就直接找开发了, 面试想留个好印象,还是得熟练掌握,能在纸上快速写出来。
有 2 张表,学生表(student)基本信息如下
科目和分数表(grade)
1.查询所有学生的数学成绩,显示学生姓名 name, 分数, 由高到低
select a.name b.score from student a,grade b where a.id=b.id and kemu=‘数学‘ order by score desc
2.统计每个学生的总成绩,显示字段:姓名,总成绩
select a.name,sum(b.score) as sum_score from student a,grade b where a.id=b.id order by name desc
3.统计每个学生的总成绩(由于学生可能有重复名字),显示字段:学生 id,姓 名,总成绩
slect a.id ,a.name,c.sum_score from student a (select b.id sum(score) as sum_score from grrde b) where aid=c.id order by sum_score desc
4.列出各门课程成绩最好的学生, 要求显示字段: 学号,姓名,科目,成绩
第一步先 group by 找出单科最好成绩,作为第一张表
select b.kemu max(b.score) from grade b group by kemu
再结合学生表和分数表,得到单科最好成绩
-- 单科最好的成绩
select c.id,a.name,c.kemu.c.score
from grade c,student a
(
select b.kemu max(b.score) as max_score
from grade b
group by kemu
) t
where c.kemu=t.lemu
and c.score=t.max_score
and a.id=c.id
标签:帮助 http esc 重复 也会 要求 课程 lazy -o
原文地址:https://www.cnblogs.com/caoxiaowei/p/13173408.html