我理解窗口函数,但不明白为什么它们被称为窗口函数。当我们说“窗口”时,它是partition子句还是order by子句?
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子句中使用。它们在任何联接、筛选或分组之后应用。
window Function
1条答案
按热度按时间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子句中使用。它们在任何联接、筛选或分组之后应用。