मर्ज स्टेटमेंट का उपयोग करने का प्रयास करें। सुनिश्चित नहीं है कि यह वही करता है जो आप चाहते हैं लेकिन इसे काम करना चाहिए। दुर्भाग्य से सम्मिलित खंड आवश्यक है) लेकिन कभी भी कॉल नहीं किया जाना चाहिए।
merge into t a
using (
select
A,
B,
timestamp,
lag(A) over (order by id, timestamp) as prior_A,
lag(timestamp) over (order by B, timestamp) as prior_timestamp
from t) b
on (a.B = b.B)
when matched then
update set a.a = case when b.timestamp-b.prior_timestamp <= 45
then b.prior_A else b.A end
when not matched then insert (B) values (null)