未绑定的前提适用于:通过SQL的SQL Server 2012(11.x) Server 2017。
指定窗口从分区的第一行开始。 只能将“无界优先”指定为窗口起点。
使用此功能时,怎么会这样:
avg(Qty) over (partition by [Name]
ORDER BY [Period] desc ROWS BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING
)
我仍然可以获得滚动平均值。
我了解,至少根据文档所述,以上构造应使我等效于Select TOP(3) avg(qty)...
。
我想念什么吗?
答案 0 :(得分:0)
经过研究,测试和分析了可用的文档,需要记住的一件事是我的理解还不完整:在任何配置中使用ROWS
时,参考点始终是当前行。所以我的查询:
avg(Qty) over (partition by [Name]
ORDER BY [Period] desc ROWS BETWEEN UNBOUNDED PRECEDING AND 2 FOLLOWING)
的简单含义是“使从窗口分区的开始到当前行的所有行以及另外2行”。不言而喻的部分是“当前行”,始终存在。
感谢Damien_the_Unbeliever陈述了显而易见的内容,这让我不断思考。