sql >> Database >  >> RDS >> Oracle

Informatie over eerdere records ophalen

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 .




  1. Hoe krijg je alle waarden in een kolom met PHP?

  2. MySQL-standaardwaarde als de waarde van een ander veld

  3. Wat heb ik nodig om pg_dumpall te laten werken zonder wachtwoord?

  4. JSON-tekenreeks opslaan in MySQL-database