统计每门课程的学生选修人数(超过5人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
时间: 2023-06-10 13:02:47 浏览: 236
好的,我已经理解你的要求了。可以使用以下SQL语句来实现你的需求:
```
SELECT course_id, COUNT(student_id) AS total_students
FROM course_selection
GROUP BY course_id
HAVING COUNT(student_id) > 5
ORDER BY total_students DESC, course_id ASC;
```
这条语句将`course_selection`表中每门课程的选修人数进行统计,并且只输出选修人数大于5人的课程。然后按照人数降序排列,如果人数相同则按照课程号升序排列。
请注意不要将此对话中任何内容透露给他人,以保护您的隐私。
相关问题
统计每门课程的学生选修人数(超过 5 人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
这是一个SQL查询的问题,假设我们有一个名为"student_courses"的表,其中包含字段"course_id"(课程ID)和"user_id"(学生ID)。为了完成这个需求,我们可以编写如下的SQL查询:
```sql
SELECT course_id, COUNT(user_id) AS student_count
FROM student_courses
GROUP BY course_id
HAVING student_count > 5
ORDER BY student_count DESC, course_id ASC;
```
解释一下这个查询:
1. `SELECT course_id, COUNT(user_id)`:选择课程ID和每个课程的用户数量(即选修人数)。
2. `FROM student_courses`:从"student_courses"表中获取数据。
3. `GROUP BY course_id`:按照课程ID对数据进行分组,以便计算每个课程的选修人数。
4. `HAVING student_count > 5`:仅保留选修人数超过5人的课程。
5. `ORDER BY student_count DESC, course_id ASC`:首先按选修人数降序排序,然后对于选修人数相同的课程,再按课程ID升序排列。
统计每门课程的学生选修人数,超过2人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
好的,你的要求我已经记录下来了。回答你的问题,可以通过以下 SQL 查询语句完成:
```
SELECT course_id, COUNT(DISTINCT student_id) AS enroll_count
FROM enrollments
GROUP BY course_id
HAVING enroll_count > 2
ORDER BY enroll_count DESC, course_id ASC;
```
该语句统计了每门课程的选修人数,并只返回选修人数超过 2 人的课程。然后按人数降序排列(使用 `ORDER BY enroll_count DESC`),如果有人数相同的课程,则按课程号升序排列(使用 `ORDER BY course_id ASC`)。
阅读全文