sql语言实现统计每门课程的学生选修人数(超过10人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
时间: 2024-03-22 14:39:06 浏览: 787
好的,以下是 SQL 语句实现:
```sql
SELECT course_id, COUNT(*) AS num
FROM course_selection
GROUP BY course_id
HAVING num > 10
ORDER BY num DESC, course_id ASC;
```
解释一下:
- `course_selection` 表是选课表,包含学生选修课程的记录,其中 `course_id` 表示课程编号。
- `COUNT(*)` 用于统计每门课程的选修人数。
- `HAVING num > 10` 用于筛选出选修人数超过 10 人的课程。
- `ORDER BY num DESC, course_id ASC` 表示按照选修人数降序排列,若人数相同则按课程号升序排列。
相关问题
使用sql 语句,统计每门课程的学生选修人数(超过(含等于)2人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
好的,我知道了。根据您的要求,可以使用以下 SQL 语句来实现:
```
SELECT course_id, COUNT(student_id) AS student_count
FROM course_selection
GROUP BY course_id
HAVING student_count >= 2
ORDER BY student_count DESC, course_id ASC;
```
这条 SQL 语句会从 course_selection 表中统计每门课程的选修人数,并且只输出选修人数超过等于 2 人的课程,查询结果按照选修人数降序排列,若选修人数相同,按照课程号升序排列。
注意,这里假设课程编号为 course_id,学生编号为 student_id,课程选修情况存储在 course_selection 表中。如果您的实际情况不同,请根据实际情况修改 SQL 语句。
统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
好的,这是一个计算题。为了得到每门课程的选修人数,我们需要查询选课表并根据课程号进行分组统计,然后筛选出选修人数超过10人的课程并按照要求排序。以下是SQL语句:
```
SELECT course_id, COUNT(*) AS num_students
FROM course_selection
GROUP BY course_id
HAVING num_students > 10
ORDER BY num_students DESC, course_id ASC;
```
这条SQL语句将选课表按照课程号分组,计算每个课程的选修人数,筛选出选修人数超过10人的课程,并按照要求排序输出。
阅读全文