mysql语句 查询所选课程总学分最高的学生信息,显示学号、姓名和学分
时间: 2024-02-04 10:03:46 浏览: 95
好的,你可以使用以下 MySQL 语句查询所选课程总学分最高的学生信息,显示学号、姓名和学分:
```
SELECT s.id, s.name, SUM(c.credit) as total_credit
FROM student s
JOIN sc ON s.id = sc.sid
JOIN course c ON sc.cid = c.id
GROUP BY s.id, s.name
ORDER BY total_credit DESC
LIMIT 1;
```
这个查询语句中,我们使用了 `JOIN` 连接了 `student` 表、`sc` 表和 `course` 表,通过 `GROUP BY` 分组计算出每个学生所选课程的总学分,然后通过 `ORDER BY DESC` 按照总学分降序排列,最后通过 `LIMIT 1` 返回总学分最高的学生信息。
相关问题
mysql 查询选修了全部学分大于4的课程的学生的学号
可以使用如下 SQL 查询语句:
SELECT DISTINCT sc.Sno
FROM sc
WHERE sc.Credit > 4
GROUP BY sc.Sno
HAVING SUM(sc.Grade) >= 60
这个查询语句可以找出所有选修了全部学分大于4的课程的学生的学号。需要注意的是,这个查询语句假设每门课程的学分相等,且及格分数为60分,如果不符合实际情况,需要进行相应的修改。
运用MySQL语句:查询所有同学的学分情况(假设课程成绩≥60分时可获得该门课程的学分),要求显示学生的学号s_no、姓名s_name、总学分(将该列定名为:total_score)。(用JOIN)
好的,以下是MySQL语句:
```
SELECT s.s_no, s.s_name, SUM(c.credit) AS total_score
FROM student s
JOIN score sc ON s.s_no = sc.s_no
JOIN course c ON sc.c_no = c.c_no
WHERE sc.score >= 60
GROUP BY s.s_no, s.s_name
```
解释一下:
首先,我们需要从 student 表中获取学生的学号和姓名,从 course 表中获取每门课程的学分,从 score 表中获取每个学生修的每门课的成绩。因此,我们需要使用 JOIN 连接三个表。
然后,我们需要过滤掉成绩不及格的课程,即 WHERE sc.score >= 60。
最后,我们需要按照学号和姓名分组,并且将每个学生修的所有及格课程的学分求和,得到总学分。这里使用了 SUM 函数和 GROUP BY 子句。
最终结果显示的是每个学生的学号和姓名,以及他们的总学分。
阅读全文