GROUP BY、HAVING和ORDER BY 子句的使用: (1)查找student中男生和女生的人数。 (2)查找选修了koo1课程的学生学号和及其考试成绩,结果按成绩降序排列。 (3)查找考试成绩平均分>85分的课程号和考试平均分
时间: 2024-10-13 18:18:19 浏览: 27
GROUP BY, HAVING, 和 ORDER BY 是 SQL 查询中常用的子句,用于对数据进行分组、筛选和排序。
1. 使用 GROUP BY 子句查找学生中男生和女生的人数,可以按照性别字段(如 gender)进行分组:
```sql
SELECT gender, COUNT(*) AS student_count
FROM student
GROUP BY gender;
```
这将返回每个性别的学生人数。
2. 查找选修了 koo1 课程的学生学号和考试成绩,并按成绩降序排列,需要结合 WHERE 条件和 ORDER BY 子句:
```sql
SELECT student_id, score
FROM students
INNER JOIN courses ON students.course_id = koo1.course_id
WHERE course_name = 'koo1'
ORDER BY score DESC;
```
这会列出所有选修了 koo1 课程学生的成绩,从高分到低分。
3. 计算考试成绩平均分并找出平均分大于 85 分的课程号和其平均分,同样需要 GROUP BY 和 HAVING:
```sql
SELECT course_id, AVG(score) as average_score
FROM exams
GROUP BY course_id
HAVING AVG(score) > 85;
```
这将显示所有课程中成绩平均分超过 85 的课程ID及其平均分。
阅读全文