【发布时间】:2021-05-12 05:53:38
【问题描述】:
我需要更改此脚本,使其每天更新数据,因为每天都会插入新数据
MERGE INTO t_customer_statistics tcs
USING (
SELECT rowid rid,
LEAD(TRX_DATE, 1) OVER (PARTITION BY cuid ORDER BY TRX_DATE DESC) AS prev_dt,
LAG(TRX_DATE, 1) OVER (PARTITION BY cuid ORDER BY TRX_DATE DESC) AS next_dt
FROM t_customer_statistics
) src
ON ( tcs.ROWID = src.rid )
WHEN MATCHED THEN
UPDATE
SET LIFECYCLE_STATUS = CASE
WHEN prev_dt IS NULL
THEN 'acquired'
WHEN MONTHS_BETWEEN(TRUNC(tcs.TRX_DATE, 'MM'), TRUNC(src.prev_dt)) <= 1
THEN 'existing'
ELSE 'reactivated'
END
||
CASE
WHEN COALESCE(src.next_dt, SYSDATE) >= tcs.TRX_DATE + INTERVAL '90' DAY
THEN ', sleeping'
END;
【问题讨论】:
标签: sql oracle plsql sql-merge