我在表格中有以下几列
DATE_TIME , MESSAGE , VALUE , SOURCE , LOT_NAME
值与SOURCE,LOT_NAME和MESSAGE相关联。
我想返回以下列的数据
DATE_TIME , MESSAGE , NEW_VALUE ,OLD_VALUE , SOURCE , LOT_NAME
其中新值是当前行值,而旧值是具有相同消息来源,但前一个批次值相同的消息的值。
我该如何实现?请帮忙。
不适用
答案 0 :(得分:0)
您正在寻找lag()
:
select t.*,
lag(value) over (partition by source, lot_name, message order by date_time) as prev_value
from t;