以下是我的数据集,我需要计算以前的交易日期列
Client Account No Trade Date Amount Previous Transaction Date
A 1 1/1/2016 10 -
A 2 1/2/2015 20 -
A 3 1/3/2015 30 -
A 1 1/4/2017 40 1/1/2016
A 2 1/5/2017 50 1/2/2015
B 1 1/6/2017 60 -
A 2 1/7/2017 70 1/5/2017
我如何以最有效的方式完成工作,因为我拥有庞大的数据。需要在Oracle SQl中完成
答案 0 :(得分:2)
这是lag
窗口函数的直接应用。
select t.*
,lag(trade_date) over(partition by client,account_no order by trade_date) as prev_txn_date
from tbl t
答案 1 :(得分:0)
其他方法是创建一个函数并在查询中使用它,请参阅下面的示例代码,
10.5