Доступные версии документации

Получение последних записей интервалов агрегирования
Функция

Определяет для каждой записи выборки последнее значение в её интервале агрегирования.

Спецификация
   
<последняя запись>::=
Синтаксические правила
  1. <Значимые выражения> в <OVER-спецификации> задают столбцы выборки, по которым выполняется разбивка выборки на интервалы агрегирования.

  2. <Имена столбцов> в <ORDER BY-спецификации> внутри <OVER-спецификации> задают имена упорядочиваемых столбцов.

Общие правила
  1. Для каждой записи выборки возвращается последнее значение того интервала агрегирования, которому принадлежит эта запись.

    create or replace table ntest(i int, j int);
    insert into ntest values(1,NULL);
    insert into ntest values(2,NULL);
    insert into ntest values(2,NULL);
    insert into ntest values(2,20);
    insert into ntest values(3,30);
    insert into ntest values(3,NULL);
    insert into ntest values(3,NULL);
    insert into ntest values(4,40);
    insert into ntest values(4,NULL);
    insert into ntest values(4,41);
    insert into ntest values(5,50);
    
    select * from ntest;
    I           J
     -           -
    |          1|            |
    |          2|            |
    |          2|            |
    |          2|          20|
    |          3|          30|
    |          3|            |
    |          3|            |
    |          4|          40|
    |          4|            |
    |          4|          41|
    |          5|          50|
    
    SELECT i as "Интервал", 
           nvl(cast LAST_VALUE(j) over(partition by i) as char, 'null') as "Первое значение" 
      FROM ntest;
    Интервал    Первое значение
     --------    ---------------
    |          1|NULL           |
    |          2|20             |
    |          2|20             |
    |          2|20             |
    |          3|NULL           |
    |          3|NULL           |
    |          3|NULL           |
    |          4|41             |
    |          4|41             |
    |          4|41             |
    |          5|50             |
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter