mysql列出选修人数大于2人的课程名和人数,并按照选修人数升序方式排序
时间: 2024-02-12 21:08:38 浏览: 34
可以使用如下 SQL 语句来实现:
```
SELECT course_name, COUNT(*) AS num_of_students
FROM course_selection
GROUP BY course_name
HAVING num_of_students > 2
ORDER BY num_of_students ASC;
```
其中,`course_selection` 是选课表的表名,`course_name` 是课程名的列名,`num_of_students` 是选修该课程的人数,使用 `COUNT(*)` 函数来统计,`HAVING` 子句用于筛选选修人数大于 2 的课程,`ORDER BY` 子句用于将结果按选修人数升序排序。
相关问题
MYsql 数据库求课程的课程号、课程名和选修该课程的人数;
可以使用以下SQL语句来实现:
SELECT course_id, course_name, COUNT(*) as num_of_students
FROM course
JOIN student_course
ON course.course_id = student_course.course_id
GROUP BY course_id, course_name;
mysql列出课程平均分大于80分的课程名和平均分,并按平均分降序方式排序
可以使用以下 SQL 语句来实现:
```
SELECT course_name, AVG(score) AS avg_score
FROM scores
GROUP BY course_name
HAVING avg_score > 80
ORDER BY avg_score DESC;
```
其中,`scores` 表是存储学生成绩的表,包含三列:`course_name`(课程名)、`student_name`(学生名)和 `score`(成绩)。
解释一下上面的 SQL 语句:
- `SELECT` 子句用于选取需要的列,包括课程名和平均分。
- `AVG(score) AS avg_score` 表示计算每个课程的平均分,并将平均分的列名设置为 `avg_score`。
- `GROUP BY` 子句用于将数据按课程名分组。
- `HAVING` 子句用于筛选出平均分大于80分的课程。
- `ORDER BY` 子句用于对结果按平均分降序排序。
希望能帮助到你!