gpt4 book ai didi

postgresql - 在 SQL 中生成评分运行总和

转载 作者:行者123 更新时间:2023-11-29 11:53:27 25 4
gpt4 key购买 nike

我有一个评级表。归结为:

rating_value  created
+2 april 3rd
-5 april 20th

因此,每当有人获得评级时,我都会在数据库中跟踪该评级事件。

我想生成一个评级历史/时间图表,其中评级是图表上截至该时间点的所有评级的总和。

即一个人在 4 月 5 日的评分可能是 select sum(rating_value) from ratings where created <= april 5th

这种方法的唯一问题是我必须在我感兴趣的时间间隔内逐日运行。使用此类数据生成运行总计是否有一些技巧?

否则,我认为最好的方法是创建一个非规范化的“评级历史”表以及个人评级。

最佳答案

如果你有 postgresql 8.4,你可以使用窗口聚合函数来计算运行总和:

steve@steve@[local] =# select rating_value, created,
sum(rating_value) over(order by created)
from rating;
rating_value | created | sum
--------------+------------+-----
2 | 2010-04-03 | 2
-5 | 2010-04-20 | -3
(2 rows)

参见 http://www.postgresql.org/docs/current/static/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS

关于postgresql - 在 SQL 中生成评分运行总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2902005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com