什么是 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 BETWEENRANGE 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 窗口函数中的“窗口描述符”的主要内容,如果未能解决你的问题,请参考以下文章

是否有窗口函数或窗口函数组合可用于通过 TSQL 获得所需的结果

TSQL 对窗口计数

更强大更灵活更全面丨一文搞懂DolphinDB窗口计算

关闭窗口前显示提示

SQL中的窗口是啥?

SQL Server 中的窗口函数(2012 新函数)