计算每班学生的平均成绩

时间:2021-06-04 11:00:12

标签: sql postgresql

我有两张这样的桌子:

学生

ID | Name   | Class
1  | Jonh   | 12   
2  | Smit   | 11   
3  | David  | 10   
4  | Simon  | 11   
5  | Kate   | 12   
6  | Marry  | 11

分数

Studentid | Score  
4         |  10   
1         |  5
2         |  7
3         |  9
5         |  8

我需要像这样计算每个班级的平均值

Class| Average
10    | 9 
11    | 8.5
12    | 6.5

请帮助我做到这一点。 我试过这个:

SELECT stud.class, AVG(scor.mark) AS avg_mark
  FROM STUDENT stud
  INNER JOIN SCORE scor ON stud.id = scor.studentid
  GROUP BY stud.class

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您的查询看起来是正确的,但您的查询中有一个错误

round(avg(scor.score), 1) 是对平均值进行四舍五入

试试这个

SELECT stud.class,  round(avg(scor.score), 1) AS avg_mark
  FROM STUDENT stud
  INNER JOIN SCORE scor ON stud.id = scor.studentid
  GROUP BY stud.class

Score 表中不存在列标记。