sql server—sql中的窗口函数:为什么称为窗口函数?

kiayqfof  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(361)

我理解窗口函数,但不明白为什么它们被称为窗口函数。当我们说“窗口”时,它是partition子句还是order by子句?

kcrjzv8t

kcrjzv8t1#

窗口函数对over子句定义的一系列行进行操作。就像你透过Windows看,你看到了天空,星星,月亮。你看到的不是整个天空,而是天空的一部分。
我发现了这个美丽的定义 window Function 在简单交谈网站。为了更清楚,我在下面复制。
关于窗口函数的简单讨论的原始文章
window(也可以是windowing或windowed)函数对一组行执行计算。我喜欢考虑“从窗口看”返回的行,并有最后一次执行计算的机会。窗口由over子句定义,over子句确定行是否被划分为更小的集合,以及它们是否被排序。事实上,如果您使用窗口函数,您将始终使用over子句。over子句也是sequence对象所需语法的下一个值的一部分,但在其他情况下,它与窗口函数一起使用。
over子句可以包含一个partitionby选项。这会将行分成更小的集合。你可能会认为这和groupby是一样的,但事实并非如此。分组时,每个唯一组返回一行。使用分区依据时,所有详细信息行都将与计算一起返回。如果你家里有一扇分为几个窗格的Windows,那么每个窗格就是一扇Windows。在考虑窗口函数时,整个结果集是一个分区,但在使用partition by时,每个分区也可以被视为一个窗口。所有窗口功能都支持分区方式(可选)。
over子句还可以包含order by选项。这与查询的order by子句无关。有些函数需要order by,而其他函数则不支持。当应用计算时,行的顺序很重要时,需要order by。
窗口函数只能在查询的select和order by子句中使用。它们在任何联接、筛选或分组之后应用。

相关问题