SQL语句查各个班级的平均成绩
时间: 2023-07-01 19:25:39 浏览: 524
您好,以下是查询各个班级平均成绩的 SQL 语句示例:
```
SELECT class, AVG(score) as avg_score
FROM scores
GROUP BY class;
```
其中,`scores` 表存储了学生的成绩,包括学生姓名、班级、科目和成绩等字段。`class` 字段表示班级,`score` 字段表示成绩。以上 SQL 语句会对 `scores` 表按照班级进行分组,统计每个班级学生的平均成绩,并且将结果按照班级升序排序,最终查询结果会包含班级和平均成绩两个字段。
相关问题
写出HiveQL并解释下列问题:给定两张表(学生课程成绩表,学生班级表),写出如下两个sql 学生课程成绩表:table_course_grade,包含字段:course_id course_name student_id student_name course_grade 学生班级表: table_class_student,包含字段:class_id class_name student_id student_name 1、写出sql,"计算学生数量,这些同学的总分大于150分,平均分小于90分"。 2、写出sql,"列出各个班级的名称和总分值"。
答案:
1、计算学生数量,这些同学的总分大于150分,平均分小于90分的HiveQL语句:
```sql
SELECT COUNT(DISTINCT c.student_id)
FROM table_course_grade g
JOIN table_class_student c
ON g.student_id = c.student_id
GROUP BY c.student_id
HAVING SUM(g.course_grade) > 150 AND AVG(g.course_grade) < 90;
```
该语句使用了INNER JOIN将两个表连接起来,在GROUP BY语句中按照学生ID进行分组,并使用SUM函数计算每个学生的总分,使用AVG函数计算每个学生的平均分。最后,HAVING子句筛选出总分大于150分,平均分小于90分的学生,并使用COUNT函数计算这些学生的数量。
2、列出各个班级的名称和总分值的HiveQL语句:
```sql
SELECT c.class_name, SUM(g.course_grade) as total_grade
FROM table_course_grade g
JOIN table_class_student c
ON g.student_id = c.student_id
GROUP BY c.class_name;
```
该语句使用了INNER JOIN将两个表连接起来,在GROUP BY语句中按照班级名称进行分组,并使用SUM函数计算每个班级的总分。最后,SELECT语句选择班级名称和总分作为输出结果。
用SQL语言实现收集学院中所有同学多门课程的分数,数据集的每一行表示一条学生选课的成绩,最后计算各个班级内不同课程的最高分、最低分、平均分。
好的,以下是我给出的 SQL 语句,可以实现你的需求:
```
SELECT
class,
course,
MAX(score) AS max_score,
MIN(score) AS min_score,
AVG(score) AS avg_score
FROM
scores
GROUP BY
class, course;
```
其中,`scores` 表是学生选课成绩的数据集,包括学生姓名、班级、课程和分数等信息。以上 SQL 语句会根据班级和课程进行分组,计算出每个班级内不同课程的最高分、最低分和平均分。
阅读全文