Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
计算前7行SQL的平均值_Sql_Sql Server_Sql Server 2016 - Fatal编程技术网

计算前7行SQL的平均值

计算前7行SQL的平均值,sql,sql-server,sql-server-2016,Sql,Sql Server,Sql Server 2016,考虑从存储过程返回的以下结果集: IHD列的目标是计算前6行(天),以从存储过程中确定IHD值 在这种情况下,只有第7行及以后才会有IHD值,因为计算时需要考虑前6天的期末余额,包括当天(第7天),并计算平均值。基本上,它需要使用第1行到第7行的IHD值。然后,要计算第8行的IHD值,需要使用第2到8行 我已经看过SQL LAG函数,但这只允许我跳到前一行,我不确定我是否能够在需要多行平均值的自引用CTE中成功使用LAG函数 我应该如何处理这种情况 使用之间的行。如果没有可消耗的样本数据和预期

考虑从存储过程返回的以下结果集:

IHD列的目标是计算前6行(天),以从存储过程中确定IHD值

在这种情况下,只有第7行及以后才会有IHD值,因为计算时需要考虑前6天的期末余额,包括当天(第7天),并计算平均值。基本上,它需要使用第1行到第7行的IHD值。然后,要计算第8行的IHD值,需要使用第2到8行

我已经看过
SQL LAG
函数,但这只允许我跳到前一行,我不确定我是否能够在需要多行平均值的自引用
CTE
中成功使用
LAG
函数


我应该如何处理这种情况

使用之间的
行。如果没有可消耗的样本数据和预期结果,我只能给出伪SQL,但这将使您走上正确的道路:

AVG({Your Column}) OVER ([PARTITION BY {Other Column}] ORDER BY {Column To Order BY}
                         ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)

显然,如果不需要,请更换大括号(
{}
)中的零件,并移除括号(
[]
)中的零件。

使用
之间的行。如果没有可消耗的样本数据和预期结果,我只能给出伪SQL,但这将使您走上正确的道路:

AVG({Your Column}) OVER ([PARTITION BY {Other Column}] ORDER BY {Column To Order BY}
                         ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)
显然,如果不需要,请更换大括号(
{}
)中的零件,并拆下括号(
[]
)中的零件