繁体   English   中英

为什么ROW_NUMBER定义为window function?

[英]Why ROW_NUMBER is defined as window function?

我想更好地理解 window function 的含义。 定义说:

A window function 对与当前行有某种关联的一组表行(窗口)执行计算

让我们考虑ROW_NUMBER() (同样适用于RANK()DENSE_RANK() )。 function 只需为有序的行集分配一个数字。 这似乎不遵循上述定义:它不是对与当前行有某种关联的一组表行进行计算,而是对所有结果行进行计算。

有人可以解释一下吗?

当然,排名函数满足该定义。

在不使用partition by情况下使用时,整个表是“表行集”。

与当前行的关系是当前行中相对于其他行的值。

它遵循定义。

此 function 将虚拟序列号添加到行。 根据 Window 结果的 PARTITION BY 和 ORDER BY 结果,对于特定的 window,此序列可以重新启动多次。 我提到“虚拟”是因为行号仅在查询时才存在,而不是物理查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM