SQl查找注册所有课程的学生的姓名
我目前在一个数据库课程中,在这个问题上,我一直排在第三位 问题2大学数据库具有以下关系: 学生(Sno:int,Sname:varchar(64),性别:“F”或“M”,年龄:int),SQl查找注册所有课程的学生的姓名,sql,database,Sql,Database,我目前在一个数据库课程中,在这个问题上,我一直排在第三位 问题2大学数据库具有以下关系: 学生(Sno:int,Sname:varchar(64),性别:“F”或“M”,年龄:int), 课程(Cno:int,Cname:varchar(32)), 注册(Sno:int,Cno:int,年级:int) 编写SQL语句以执行以下任务: 找出最年轻学生的名字 为至少注册Cno=1和Cno=3课程的学生查找Sno 查找注册所有课程的学生的姓名 查找注册3门以上课程的学生姓名 查找每门课程的名称和平均成
课程(Cno:int,Cname:varchar(32)),
注册(Sno:int,Cno:int,年级:int) 编写SQL语句以执行以下任务:
让我们看看你尝试了什么,然后我们就会知道如何帮助。这听起来像是斯坦福工程学院数据库课程的家庭作业。不要回答他的家庭作业-给他指出正确的方向。谢谢!我的意思是3和4,我理解4,现在只是3。我想到了多种解决方案。这里有一个:你知道有多少门课程,你知道每个学生注册了多少门课程,比较它们。
SELECT S.Sname
FROM Students AS S INNER JOIN Enrollment AS E ON S.Sno = E.Sno
GROUP BY S.Sno, S.Sname
HAVING COUNT(*) = (SELECT COUNT(*) FROM Courses)
SELECT S.Sname
FROM Students AS S INNER JOIN Enrollment AS E ON E.Sno = S.Sno
GROUP BY S.Sno, S.Sname
HAVING COUNT(*) > 3
SELECT C.CName, AVG(E.Grade) AS AvgGrade
FROM Courses AS C INNER JOIN Enrollment AS E ON C.CNo = E.CNo
GROUP BY C.Cno, C.CName