sql面试50题------(21-30)

简介: 这篇文章是SQL面试题的21至30题,涵盖了查询不同老师所教课程的平均分、按分数段统计各科成绩人数、查询学生平均成绩及其名次等问题的SQL查询语句。

文章目录

  • 21、查询不同老师所教不同课程平均分从高到低显示
  • 23、使用分段[100,85),[85,70),[70,60),[<60] 来统计各科成绩,分别统计各分数段人数:课程ID和课程名称

21、查询不同老师所教不同课程平均分从高到低显示

以课程为主题:两表联合,以课程分组,求平均值(假如不同的老师教同一门课,这种情况不予考虑)

select a.c_id '课程号',b.c_name '课程名', avg(a.s_score) '平均分'
from score  as a
inner JOIN course as b
on a.c_id = b.c_id
group by a.c_id
order by avg(a.s_score) desc

在这里插入图片描述
以老师为主题

  • 需要三表联合,老师进行分组。再次考虑平均分
select t.t_id,t.t_name,c.c_name,avg(s.s_score)
from teacher as t
inner join course as c
on t.t_id = c.c_id

inner join score as s
on c.c_id = s.c_id
group by t.t_id
order by avg(s.s_score) desc

在这里插入图片描述

23、使用分段[100,85),[85,70),[70,60),[<60] 来统计各科成绩,分别统计各分数段人数:课程ID和课程名称

  • 对课程号分组,使用case when来判断
select s.c_id '课程号' ,c.c_name '课程名称',
sum(case when s.s_score <= 100 and s.s_score > 85 then 1 else 0 End) as '[100,85)',
count(case when s.s_score <= 85 and s.s_score > 70 then 1 else NULL End) as '[85,70)',
sum(case when s.s_score <= 70 and s.s_score > 60 then 1 else 0 End) as '[70,60)',
sum(case when s.s_score < 60  then 1 else 0 End) as '[< 60)'
from score as s
INNER JOIN course as c
on s.c_id = c.c_id
group by c.c_id

在这里插入图片描述
24、查询学生平均成绩及其名次

select st.s_id,st.s_name,avg(s.s_score),row_number() OVER(order by avg(s.s_score) desc)
from 
student as st
inner JOIN score as s
on st.s_id = s.s_id
group by st.s_id

在这里插入图片描述

相关文章
|
2月前
|
SQL 数据库
SQL面试50题------(初始化工作、建立表格)
这篇文章提供了SQL面试中可能会遇到的50道题目的建表和初始化数据的SQL脚本,包括学生、教师、课程和成绩表的创建及数据插入示例。
SQL面试50题------(初始化工作、建立表格)
|
5月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
151 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
5月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
957 0
|
5月前
|
SQL 关系型数据库 MySQL
MYSQL-SQL语句性能优化策略以及面试题
MYSQL-SQL语句性能优化策略以及面试题
120 1
|
2月前
|
SQL
sql面试50题------(1-10)
这篇文章提供了SQL面试中的前10个问题及其解决方案,包括查询特定条件下的学生信息、教师信息和课程成绩等。
sql面试50题------(1-10)
|
2月前
|
SQL
sql面试50题------(11-20)
这篇文章提供了SQL面试中的50道题目,其中详细解释了11至20题,包括查询与学号为“01”的学生所学课程相同的学生信息、不及格课程的学生信息、各科成绩统计以及学生的总成绩排名等问题的SQL查询语句。
|
4月前
|
SQL 大数据
常见大数据面试SQL-每年总成绩都有所提升的学生
一张学生成绩表(student_scores),有year-学年,subject-课程,student-学生,score-分数这四个字段,请完成如下问题: 问题1:每年每门学科排名第一的学生 问题2:每年总成绩都有所提升的学生
|
4月前
|
SQL 关系型数据库 MySQL
sql面试题库
sql面试题库
|
4月前
|
SQL Oracle 关系型数据库
SQL 面试系列(一)【留存率问题】
SQL 面试系列(一)【留存率问题】
|
4月前
|
SQL 算法 大数据
深入解析力扣177题:第N高的薪水(SQL子查询与LIMIT详解及模拟面试问答)
深入解析力扣177题:第N高的薪水(SQL子查询与LIMIT详解及模拟面试问答)