SQl查找注册所有课程的学生的姓名

Mar*_*fin 3 sql database

我目前在数据库类中,并且在这个问题上遇到了第3个问题.

问题2大学数据库有以下关系:

学生(Sno:int,Sname:varchar(64),性别:'F'或'M',年龄:int),
COURSES(Cno:int,Cname:varchar(32)),
ENROLLMENT(Sno:int,Cno: int,Grade:int).

编写SQL语句以执行以下任务:

  1. 找到最年轻学生的名字.
  2. 为至少注册Cno = 1和Cno = 3的课程的学生找到Sno.
  3. 找到报名参加所有课程的学生的姓名.
  4. 查找注册3门以上课程的学生的姓名.
  5. 找到每门课程的名称和平均成绩.
  6. 找到"DBMS"课程成绩高于平均成绩的学生姓名.

Dyl*_*ith 5

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)
Run Code Online (Sandbox Code Playgroud)

4

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

  • 不要回答他的作业 - 指出他正确的方向. (7认同)