Om Random_1 voor de vorige datum op te halen, gebruikt u de LAG()
functie, zoals zo:
select ... , lag(t1.random_1) over (order by t1.date_key), .....
from table1 t1 join table2 t2 on t1.date_key = t2.date_key
...
(en hetzelfde voor de andere kolommen). Merk op dat het resultaat van LAG()
is natuurlijk NULL
voor de vroegste rij - aangezien er geen "vorige" waarde is. Als je iets anders wilt voor de eerste rij, wikkel alles dan in een COALESCE()
.
Ook als u een id
. heeft is van een soort en je doet mee met id
ook, dan wil je geen datums voor verschillende id's door elkaar halen. De LAG()
functies (en bijna alle andere analytische functies) stelt u in staat om te partition by id
naast bestellen op datum. U kunt de definitie en voorbeelden lezen in de Oracle-documentatie
.