当前位置:Gxlcms > mysql > SQL综合应用(1.创建临时表,为后续查询所用)实例_(学生,课程表,选修表)

SQL综合应用(1.创建临时表,为后续查询所用)实例_(学生,课程表,选修表)

时间:2021-07-01 10:21:17 帮助过:48人阅读

一.需要分析 查询各班各门课程的考试人数和及格人数,要求将查询结果显示在同一个表中,包括班级,课程号,考试人数和及格人数 二.实现步骤 --1.创建临时表 "#考试人数" create table #考试人数( 班级 char(20), 课程号 char(3), 考试人数 int ) --2.查询各班各

一.需要分析

查询各班各门课程的考试人数和及格人数,要求将查询结果显示在同一个表中,包括班级,课程号,考试人数和及格人数

二.实现步骤

--1.创建临时表 "#考试人数"
create table #考试人数(
班级 char(20),
课程号 char(3),
考试人数 int
)
--2.查询各班各门课程的考试人数,并保存在临时表"#考试人数"中
insert into #考试人数
select 班级,课程号,COUNT(选修.学号) as 考试人数
from 学生 inner join 选修 on 学生.学号=选修.学号
group by 班级,课程号
--3.创建临时表"#及格人数"
create table #及格人数(
班级 char(20),
课程号 char(3),
及格人数 int
)
--4.查询各班各门课程的及格人数,并保存在临时表"#及格人数"中
insert into #及格人数
select 班级,课程号,COUNT(选修.学号) as 及格人数
from 学生 inner join 选修 on 学生.学号=选修.学号
where 成绩>60
group by 班级,课程号
--5.将两个临时表进行左连接,得出最后的查询结果
select #考试人数.班级,#考试人数.课程号,考试人数,及格人数
from #考试人数 left join #及格人数 on #考试人数.班级=#及格人数.班级 and #考试人数.课程号=#及格人数.课程号

三.查询结果如图所示

,免备案空间,虚拟主机,美国空间

人气教程排行