【移动窗口】
移动窗口,顾名思义,“窗口”(也就是操作数据的范围)不是固定的,而是随着设定条件逐行移动的。
在over后面的子句中,使用rows加“范围关键字”可以设置移动窗口,语法如下:
其中,“范围起始行”和“范围终止行”使用特定关键字表示,常用的特定关键字如下。
• n preceding:当前行的前n行。
• n following:当前行的后n行。
• current row:当前行。
• unbounded preceding:第1行。
• unbounded following:最后1行。
1、rows between()
“rows between <范围起始行> and <范围终止行>”用于指定移动窗口的范围,范围包含起始行和终止行。
2、range between()
“range between <范围起始行> and <范围终止行>”用于指以当前行在开窗函数中的值为根基,然后按照order by进行排序,围绕那个值去加减上下界。