繁体   English   中英

前一列范围到当前列的 SQL 平均值

[英]SQL average of previous range of columns into current column

我正在尝试进行以下计算,但在行级别,在下图中,我计算了每天的平均值(它可以有 n 行),然后我使用 LAG 函数将前一行的平均值插入到下一行 LAG_VAL 列。

按计算分组

现在我在行级别进行计算,我已经能够使用窗口函数(分析)获得该范围数据的平均值

ROUND(AVG(SUMCOUNTSFT3) OVER (partition by to_date(to_char(DATETIMEOFREADING, 'DD/MM/RRRR'))),2) as AVG_SUMCOUNTSFT3

但我一直无法计算前一天的平均值,将其插入到下一天的范围内,如上图所示。

行级计算

不确定是否有办法使用 RANGE 函数来实现这一点,如果我需要使用 PLSQL。

在我的脑海里(没有匹配的模式来测试)这个窗口子句应该可以工作:

(partition by to_date(to_char(DATETIMEOFREADING, 'DD/MM/RRRR') order by dates range between interval '1' day preceding and interval '1' day preceding)

这是普通的 SQL,因此它可以在 PL/SQL 内部和外部运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM