Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
上一列范围到当前列的SQL平均值_Sql_Oracle_Lag - Fatal编程技术网

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

上一列范围到当前列的SQL平均值,sql,oracle,lag,Sql,Oracle,Lag,我试图获得以下计算结果,但在行级别,在下图中,我计算了每天的平均值(可以有n行),然后使用LAG函数将前一行的平均值插入下一行LAG_VAL列 现在我在行级别进行计算,我已经能够使用窗口函数(分析)获得该范围数据的平均值 但我无法计算前一天的平均值,如前一幅图所示,插入第二天的范围 我不确定是否有办法通过范围函数实现这一点,如果我需要使用PLSQL。在我的脑海中(没有匹配的模式进行测试),这个窗口子句应该可以工作: (partition by to_date(to_char(DATETIME

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

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

但我无法计算前一天的平均值,如前一幅图所示,插入第二天的范围

我不确定是否有办法通过范围函数实现这一点,如果我需要使用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内部和外部都能工作。

谢谢,我通过您的建议解决了这个问题。和之后缺少间隔关键字。舍入(平均值(SUMCOUNTSFT3)在(订单截止日期(截止日期为“读取的日期时间,'DD/MM/rrrrr'))范围介于前一天的间隔“1”和前一天的间隔“1”之间),2)作为其工作前的平均值!我批准了编辑,因此每个可能感兴趣的人都可以立即使用答案,而无需阅读评论。
(partition by to_date(to_char(DATETIMEOFREADING, 'DD/MM/RRRR') order by dates range between interval '1' day preceding and interval '1' day preceding)