sql查询每门课成绩最低的学生的sno,sname,grade,以及该门课的max_grade,涉及到的表s(sno,sname),c(cno,cname),sc(sno,cno,grade)
时间: 2023-06-08 16:08:45 浏览: 80
好的,您的问题是关于 SQL 查询的,您可以这样查询:
SELECT s.sno, s.sname, sc.grade, Max(sc.grade) as max_grade
FROM s, c, sc
WHERE s.sno = sc.sno AND c.cno = sc.cno AND c.cname = '该门课程名称'
GROUP BY s.sno, s.sname, sc.grade
HAVING sc.grade = (SELECT Min(sc.grade)
FROM sc, c
WHERE sc.cno = c.cno AND c.cname = '该门课程名称')
ORDER BY sc.grade ASC;
请注意将 '该门课程名称' 替换为您想要查询的课程名称。我希望这能够帮助您,如果您有任何其他问题,请随时提出。
相关问题
已知两张表 S(sno,sname,sage)sno为学号,sname为姓名,sage为年龄 SC(sno,cno,grade)sno为学号,cno为课程号,grade为sno这个学生选修了cno这门课获得的成绩 列出每门课(cno)的最高分的学生姓名(sname)
可以使用如下SQL语句来实现:
```
SELECT cno, MAX(grade), sname
FROM SC
INNER JOIN S ON SC.sno = S.sno
GROUP BY cno, sname;
```
这里使用了 INNER JOIN 来连接两张表,然后按照 cno 和 sname 进行分组,最后通过 MAX 函数来获取每门课的最高分。
对于教学数据库的三个基本表: Stdent(SNO,SNAME,AGE,SEX) SC(SNO,CNO,GRADE) Course(CNO,CNAME,TEACHER) 试用SQL的查询语句表达下列查询: 6)求刘老师所授课程的每门课程的成绩的最高分和最低分。
以下是针对教学数据库的 SQL 查询语句,以求刘老师所授课程的每门课程的成绩的最高分和最低分为例:
```
SELECT Course.CNAME, MAX(GRADE), MIN(GRADE)
FROM SC, Course
WHERE SC.CNO = Course.CNO AND Course.TEACHER = '刘老师'
GROUP BY Course.CNAME;
```
解释一下上述查询语句的含义:
首先从 SC 表和 Course 表中获取所需的数据,其中 SC 表和 Course 表通过课程编号 CNO 相关联。然后我们筛选出刘老师所教授的所有课程。最后根据每门课程的名称 CNAME 进行分组,使用 MAX 函数和 MIN 函数分别计算每门课程的最高分和最低分。