mysql 查询sc表所有的课程号及相应选课人数
时间: 2024-01-05 19:02:49 浏览: 34
好的,你可以使用如下的 SQL 语句来实现:
```
SELECT cno, COUNT(*) as count FROM sc GROUP BY cno;
```
这条语句会查询 `sc` 表中所有的课程号以及相应的选课人数,使用 `GROUP BY` 子句对课程号进行分组,并使用 `COUNT(*)` 函数统计每个课程号对应的选课人数。
相关问题
mysql查询选课人数大于等于3人的课程编号、课程名称、人数。
可以使用以下SQL语句实现:
```
SELECT course.cno, course.cname, COUNT(*) AS num
FROM sc, course
WHERE sc.cno = course.cno
GROUP BY course.cno, course.cname
HAVING COUNT(*) >= 3;
```
其中,使用了两个表格:选课表sc和课程表course。这两个表格通过课程编号cno关联起来,筛选出选课人数大于等于3人的课程,最后按照课程编号和课程名称分组,统计人数。
mysql查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
可以使用如下的 SQL 语句来查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩:
```
SELECT
s.id AS student_id,
s.name AS student_name,
COUNT(sc.course_id) AS course_count,
SUM(c.score) AS total_score
FROM
student s
LEFT JOIN score sc ON s.id = sc.student_id
LEFT JOIN course c ON sc.course_id = c.id
GROUP BY
s.id, s.name;
```
其中,`student` 表存储了学生的信息,包括学生编号和学生姓名;`score` 表存储了学生选课的信息,包括学生编号和课程编号;`course` 表存储了课程的信息,包括课程编号和课程成绩。这里使用了左连接(LEFT JOIN)来保证即使学生没有选课,也能够被查询到。最后使用 GROUP BY 对学生进行分组,计算每个学生选课总数和所有课程的总成绩。