我正在尝试编写一个SQL查询,返回每个部门、部门名称和该部门提供的课程的平均注册学生数量。这里有三张桌子,
学生
NetId VARCHAR(10)
FirstName VARCHAR(255)
LastName VARCHAR(255)
Department VARCHAR(100)注册人数
NetId VARCHAR(10)
CRN INT
Credits INT
Score REAL课程
CRN INT
Title VARCHAR(255)
Department VARCHAR(100)
Instructor VARCHAR(255)我已经写了
select c.Department,
(select e.CRN as col1, count(e.NetId) as col2
from Enrollments e
join Courses c on e.CRN = c.CRN
group by e.CRN) as t但是不知道该怎么继续下去。
以下是预期的结果:
会计4
CS 4
ECE 4
音乐4
物理4
心理学4
体育4
经济学3
财务3
统计数据3
发布于 2021-02-17 20:25:04
这是一个聚合查询。我会使用LEFT JOIN来包含没有课程的学生:
select c.Department,
count(e.CRN) as num_students,
count(distinct c.CRN) as num_departments,
count(e.CRN) / count(distinct c.CRN) as avg_students_in_class
from Courses c left join
Enrollments e
on e.CRN = c.CRN
group by c.departmenthttps://stackoverflow.com/questions/66239236
复制相似问题