оконная функция, которая игнорирует NULL

  |  test_id    |   run_id   |   WF_value  |  
  ------------------------------------------
        1            NULL          NULL
        1            100            1
        1            300            2
        2            NULL          NULL
        2            NULL          NULL
        2            NULL          NULL
        3            56             1
        3            44             2
        3            NULL          NULL

То есть окно нужно наложить на test_id, начать считать run_id в этом окне, причём run_id is NULL в расчёт брать не нужно. Пробовал делать через FIRST_VALUE(run_id), но всё равно сводится к тому, что надо оборачивать в ещё один подзапрос или CTE.


Ответы (1 шт):

Автор решения: Mikhail
select (case when r.RUN_ID is not null
             then row_number() over (partition by (case when r.RUN_ID is not null 
                                                        then t.test_id else 0 end)
                               order by r.run_id
                                )
        end)  as urun
→ Ссылка