Я пытаюсь получить предыдущее значение строки столбца, только если в искре оно не равно нулю SQL. так как игнорирование пустых значений недоступно, альтернативой будет ранжирование и получение максимального значения.
lag( val ignore nulls) over ()
SELECT id, val, val_partition, MAX(val) over (partition by val_partition)
FROM (
SELECT
id,
val,
sum(case when val is null then 0 else 1 end) over (order by id rows unbounded preceding) as val_partition
FROM base
)
Я пытаюсь найти другой оптимизированный способ?