Oracle 的一些分析函数允许使用窗口子句指定当前分区的子集,使用诸如“无界前/后”、“当前行”或“value_expr 前/后”之类的关键字,其中 value_expr 是物理或逻辑偏移量当前行或值(取决于您是否分别指定了 ROW 或 RANGE)。
这是一个使用 scott/tiger 的示例,它显示部门 30 中的员工,以及在他们之前雇用的部门中的员工数量(包括他们自己):
select deptno,
empno,
hiredate,
count(*) over (partition by deptno
order by hiredate
range between unbounded preceding and current row) cnt_hired_before1,
count(*) over (partition by deptno
order by hiredate
range between unbounded preceding and 0 preceding) cnt_hired_before2
from emp
where deptno = 30
order by deptno, hiredate;
...任何人都可以提供“当前行”不同于“0前/后”的示例或文档吗?对我来说,这似乎是语法糖......