gpt4 book ai didi

postgresql - 如何在 PostgreSQL 中获得时间戳的 float 平均值?

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

假设我有一张这样的时间表:

CREATE TABLE foo (
spent_on DATETIME,
hours FLOAT
)

假设 spent_on 是记录该值的时间戳,hours 是一个浮点值,表示在某项任务上花费的小时数。

如何获得过去 7 天的 float 平均小时数?

我想出了以下方法,但它不起作用:

select spent_on, hours, avg(hours)
over RANGE BETWEEN spent_on - INTERVAL '7 days' AND CURRENT ROW from daily;

我收到以下错误:

ERROR:  syntax error at or near "ROW"
LINE 1: ... BETWEEN spent_on - INTERVAL '7 days' AND CURRENT ROW from d...

我试图理解窗口函数的文档,但我很难理解分区、窗口和框架之间的概念。结果,无法提出查询。

最佳答案

我不确定 RANGE 语法,所以让我提供一个带有子查询的解决方案(如果性能不是小表 ETC 的问题..):

SELECT t.spent_on,t.hours,
COALESCE( (SELECT AVG(s.hours) FROM foo
WHERE t.spent_on > CURRENT_TIMESTAMP - INTERVAL '7 days'),0) float_avg
FROM foo t

关于postgresql - 如何在 PostgreSQL 中获得时间戳的 float 平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508145/

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