如何为每个外键获取SQL AVG()

时间:2019-06-28 11:18:41

标签: mysql

我有一张桌子,上面有很多评分。这些等级中的每一个都有一个名为“ i_id”的外键,将其链接到特定机构。 当然,有很多等级,其中很多都将具有相同的i_id。 我想知道是否有任何方法可以使用AVG()SQL函数获取每个i_id的所有评级的平均值。

此查询是我尝试过的:

SELECT AVG(rating), i_id FROM `health_rating` WHERE 1

但是我得到的结果是表中所有评分的平均值,而与i_id无关。

This is my table

and this is the single result i am getting.

2 个答案:

答案 0 :(得分:0)

您需要按i_id对查询进行分组:

SELECT   AVG(rating), i_id 
FROM     `health_rating`
GROUP BY i_id

答案 1 :(得分:0)

GROUP BY语句通常与聚合函数(COUNT,MAX,MIN,SUM,AVG)一起使用,以将结果集按一列或多列分组。

因此,您可能必须基于i_id进行GROUP BY。 GROUP BY的结果将应用于AVG功能以使其可行。

SELECT i_id, AVG(rating) as avg_rating 
FROM `health_rating`
GROUP BY i_id