我有一张桌子,上面有很多评分。这些等级中的每一个都有一个名为“ i_id”的外键,将其链接到特定机构。 当然,有很多等级,其中很多都将具有相同的i_id。 我想知道是否有任何方法可以使用AVG()SQL函数获取每个i_id的所有评级的平均值。
此查询是我尝试过的:
SELECT AVG(rating), i_id FROM `health_rating` WHERE 1
但是我得到的结果是表中所有评分的平均值,而与i_id无关。
答案 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