पिछली तारीख के लिए Random_1 खींचने के लिए, आप LAG()
. का उपयोग करेंगे फ़ंक्शन, जैसे:
select ... , lag(t1.random_1) over (order by t1.date_key), .....
from table1 t1 join table2 t2 on t1.date_key = t2.date_key
...
(और अन्य कॉलम के लिए भी)। ध्यान दें कि LAG()
. का परिणाम बेशक, NULL
होगा प्रारंभिक पंक्ति के लिए - चूंकि कोई "पिछला" मान नहीं है। अगर आप पहली पंक्ति के लिए कुछ और चाहते हैं, तो सब कुछ एक COALESCE()
. में लपेटें ।
साथ ही, अगर आपके पास id
है किसी प्रकार का है और आप id
. से जुड़ते हैं साथ ही, आप अलग-अलग आईडी के लिए तिथियों को एक साथ नहीं मिलाना चाहते हैं। LAG()
फ़ंक्शन (और लगभग सभी अन्य विश्लेषणात्मक कार्य) आपको partition by id
. की अनुमति देता है तिथि के अनुसार आदेश देने के अलावा। आप Oracle प्रलेखन में परिभाषा और उदाहरण पढ़ सकते हैं
।