Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да получите информация за предишен запис

За да изтеглите 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 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се създаде нова връзка е sqldeveloepr

  2. Пребройте отделни стойности за всяка колона поотделно

  3. приложението asp.net не се свързва с oracle 11g дори след инсталиране на oracle instant client за 11g

  4. JDBC ResultSet getDate губи прецизност

  5. Свържете се с база данни на Oracle във VB