什么是 tsql 窗口函数中的“窗口描述符”
Posted
技术标签:
【中文标题】什么是 tsql 窗口函数中的“窗口描述符”【英文标题】:what is a "window descriptor" in tsql window function 【发布时间】:2018-04-16 01:50:31 【问题描述】:我目前正在按照 Ben Itzik 的书 tsql fundamental
学习 tsql 窗口函数。
在用窗口函数解释window
是什么的部分中,作者使用了术语window descriptor
有人可以向我解释一下window descriptor
的含义和代表什么吗?
【问题讨论】:
window descriptor
基本上是您将用来评估行以实现您想要的结果的窗口函数
【参考方案1】:
显然,窗口函数是一个函数,它将根据所描述的公式或 over() 子句的计算进行操作,并在处理所选窗口的每一行后给出标量结果(行集)。所以,Window Descriptor意味着它指定了在窗口函数中应该如何选择窗口行。
【讨论】:
【参考方案2】:“窗口描述符”是以ROWS BETWEEN
或RANGE BETWEEN
开头的部分。
在许多窗口函数的使用中,这是隐含的。所以:
select sum(x) over (order by y)
实际上是以下的简写:
select sum(x) over (order by y rows between unbounded preceding and current row)
(或者是range between
;)。
还有:
select sum(x) over ()
是以下的简写:
select sum(x) over (rows between unbounded preceding and unbounded following)
【讨论】:
以上是关于什么是 tsql 窗口函数中的“窗口描述符”的主要内容,如果未能解决你的问题,请参考以下文章