[英]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.