下表显示客户拥有的车辆从2000到20XX。我试图从下表创建输出,因为客户从2000年到2001年有车辆,它会自动传递到明年,即2002年到2003年等等。我尝试使用超前滞后分析功能,但它可以传递给仅下一行。
请指导是否可以在没有存储过程的情况下实现此级联效果。
customer vehicle start end
--------------------------------------
A 0 2000 2001
A 1 2002 2003
A 1 2003 2004
A 0 2004 2015 .....contd
预期输出
customer vehicle start end
------------------------------------
A 0 2000 2001
A 1 2002 2003
A 2 2003 2004
A 2 2004 2005 ...contd
答案 0 :(得分:1)
这是你想要的吗?
select customer,
max(vehicle) over (partition by customer order by start) as vehicle,
start, end
from table t;
如果你想要一个累积金额(我很确定不在原始排期中),只需使用sum()
代替max()
:
select customer,
sum(vehicle) over (partition by customer order by start) as vehicle,
start, end
from table t;