sql >> Databáze >  >> RDS >> Oracle

Oracle SQL, doplňte chybějící hodnotu nejbližší chybějící hodnotou

Vaše první verze by měla fungovat s drobnými úpravami:

select A.*, 
       coalesce(V1, lag(V1 ignore nulls)  over (order by data)) V2
from Tab1 A;

Tweak spočívá v odstranění partition by v1 z lag() . coalesce() je jen moje preference pro jednodušší výrazy.

Stejné vyladění by mělo fungovat i pro druhou verzi.

Vaše verze nefunguje, protože lag() hodnota musí pocházet ze stejného oddílu (nebo musí být null ). Když máte partition by v1 , ve skutečnosti zajišťujete, že v1 má stejnou hodnotu jako v aktuálním řádku.



  1. Co je Microsoft Access a k čemu jej používáte?

  2. Mysql Regex nahradí 0 z ipv4

  3. Monitorování změn tabulky v Oracle

  4. (My)SQL JOIN - získejte týmy s přesně specifikovanými členy