如何获取sql中每条记录的平均值

qvtsj1bj  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(334)

我需要获取sql中每一行的平均值,例如:
这是第一张table

+ ---+------+-------------+
| course_id | course_name | 
+ ----------+-------------+
| 1         | a           |
| 2         | b           | 
| 3         | c           | 
| 4         | g           | 
+ ---+------+-------------+

这是第二个表,我需要得到的id 1和2的平均值。结果例如:

+ -------------------+------+----------+
| course_feedback_id | rate |course_id |
+ -================--+------+----------+
|       1            | 4    |   1      |
|       2            | 3    |   1      |
|       3            | 2    |   2      |
+ -------------------+------+----------+

这是我需要的最后答案

+ ----------------------+
| course_id | AVG(rate) |
+ -=======--+-----------+
|     1     | 3.5       |   
|     2     | 2         |   

+ ----------------------+

我试过这个解决方案,但它只会给我第一行,而不是所有的记录。

SELECT *, AVG(`rate`) from secondTable

请帮忙

suzh9iv8

suzh9iv81#

试试这个:

SELECT c.course_id, AVG(fb.rate)
FROM course AS c
INNER JOIN course_feedback AS fb ON fb.course_id = c.course_id
GROUP BY c.course_id
agyaoht7

agyaoht72#

SELECT `id`, AVG(`rate`) FROM `your_table` GROUP BY `id`
rjee0c15

rjee0c153#

Select course_id,t2.rate from table1 where course_id,rate in (Select course_id,avg(rate) as rate from table group by course_id t2) 如果您有多个条目/冗余条目,并且希望每个条目都找到一些聚合,因为在本例中,您得到了包含冗余记录的id,在这种情况下,请始终尝试使用 group by as group by顾名思义将对应用它的列的记录进行分组,如果应用聚合 avg in this case 将是应用它的groupwise列,而不是像id 1那样作为一个整体,我们有2个冗余条目,因此itll apply avg(id1_条目)…同样作为一个组。

相关问题