【1】面试谈——sql

说在前面的话

  笔试一般都有sql题,直接喊你手写出来的那种,这种都是很痛苦的,因为没有用机器写,不知道哪里会报错。

例子:学生表、科目成绩表

例如:

  • 1.查询所有学生的英语2成绩,显示学生姓名name, 分数, 由高到低
  • 2.统计每个学生的总成绩,显示字段:姓名,总成绩
  • 3.列出各门课程成绩最好的学生, 要求显示字段: 学号,姓名,科目,成绩

1.查询所有学生的英语2成绩,显示学生姓名name, 分数, 由高到低

select a.name,b.score from student a,grade b where a.id=b.id and subject='英语2' order by score desc;

 2.统计每个学生的总成绩,显示字段:姓名,总成绩

select a.name,sum(b.score) from student a,grade b where a.id=b.id GROUP BY name;

 3.列出各门课程成绩最好的学生, 要求显示字段: 学号,姓名,科目,成绩

第一步先group by找出单科最好成绩,作为第一张表

select b.subject,max(b.score) from grade b  GROUP BY subject;

SELECT c.id , a.name, c.subject, c.score
FROM grade c, student a,
(SELECT b.subject, MAX(b.score) as max_score
FROM grade b
GROUP BY subject) t
WHERE c.subject = t.subject
AND c.score = t.max_score
AND a.id = c.id

 

 

原文:https://www.cnblogs.com/yoyoketang/p/10065424.html

posted @ 2020-11-18 11:06  做一只热爱生活的小透明  阅读(113)  评论(0)    收藏  举报