mysql - SQL查询获取两个表中每组的平均值

标签 mysql sql group-by intersect

我有两个表:学生和结果。

对于学生,字段为student_id、姓名、年级
对于结果,字段为 student_id、score

年级就像学前类,一、二、三......就像在学校一样。

如您所见,student_id 位于两个表中。

我想要一个返回每个年级平均分数的 SQL 查询,例如

Pre-School => 50 
Kindergarten => 26 

等等

我尝试使用左连接进行分组,但没有任何效果。

我一直在处理的查询如下:

SELECT 
    cat.grade, 
    dog.score 
FROM (SELECT * FROM students GROUP BY grade) AS cat, results AS dog 
GROUP BY cat.grade

但这只给我每个年级一个结果,因此 AVG() 在这里没有给出正确的答案。

最佳答案

它应该像将两个表连接在一起、按成绩分组并选择所有分数的平均值一样简单。

SELECT grade, 
       Avg(score) 
FROM   students 
       JOIN results using (student_id) 
GROUP  BY grade 

关于mysql - SQL查询获取两个表中每组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22006013/

相关文章:

php - 存储和显示实时统计数据

mysql - 如何从下面的 MySQL 表中获取平均值 'rate'?

python - 如何在Python中按列分组并按自己的函数汇总

c# - MySQL从C#中的存储过程接收inout参数

mysql - 如何将帖子标记为已编辑?

sql - 使用 PostgreSQL 9.3 在 CTE UPSERT 中生成 DEFAULT 值

java - 在 Java 之间传递 Oracle clob

MySQL - 选择一年中总和的最大值

PHP-MYSQL-SQLSTATE[HY093] : Invalid parameter number

mysql - 第一次打开php页面时出现504错误