postgresql 如何按对象ID对平均值(或总和)进行分组?

y0u0uwnf  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(145)

我试图得到某部电影的平均收视率,但问题是,在我计算了一个人的平均收视率之后,我需要计算这部电影的所有平均收视率。
更明确地说,我已经计算了一个人的平均评级:
select person_id, movie_id, ((soundtrack_rate + casting_rate + story_rate) / 3) from ratings

我只需要每部电影的所有评分的平均值。例如,您可以在此图像中看到,我想要两部858228(id)电影的平均值。因此,在此示例中,我想要的平均结果将是0.8(1 + 0.6)/ 2

我不想要一行,也不想要重复的行。我尝试添加group by movie_id,但没有成功。

gab6jxml

gab6jxml1#

SELECT movie_id, (avg(soundtrack_rate + casting_rate + story_rate) / 3) FROM ratings GROUP BY movie_id

当你用movie_id代替你的语句分组时;行首先按电影分组,然后每组计算其自己的平均值,这就是您所需要的。

相关问题