Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 дата смены статуса  [new]
саша_ой
Guest
Hi, All !

Не смог найти в поиске, столкнулся с такой задачей - нужно по логам определить дату смены статуса объекта, т.е для каждой записи такой, например, структуры
select 'a' x, sysdate as dt
          from dual
        union all
        select 'd' x, sysdate + 1
          from dual
        union all
        select 'a' x, sysdate + 2
          from dual
        union all
        select 'a' x, sysdate + 3
          from dual
        union all
        select 'd' x, sysdate + 4 from dual
Получить дату смены состояния.
a 06.10.2010 20:15:32 07.10.2010 20:15:32
d 07.10.2010 20:15:32 07.10.2010 20:15:32
a 08.10.2010 20:15:32 10.10.2010 20:15:32
a 09.10.2010 20:15:32 10.10.2010 20:15:32
d 10.10.2010 20:15:32 10.10.2010 20:15:32

Интуитивно понимаю, что копать нужно в сторону LAST_VALUE, но никак не соображу как правильно задать границы окна.
Может кто сталкивался с подобным?
6 окт 10, 20:26    [9564805]     Ответить | Цитировать Сообщить модератору
 Re: дата смены статуса  [new]
AmKad
Member

Откуда:
Сообщений: 5222
саша_ой,

Это?
with s as(
select 'a' x, sysdate as dt
          from dual
        union all
        select 'd' x, sysdate + 1
          from dual
        union all
        select 'a' x, sysdate + 2
          from dual
        union all
        select 'a' x, sysdate + 3
          from dual
        union all
        select 'd' x, sysdate + 4 from dual)
select x, dt, 
max(lg) over (partition by x, rn) mx
from        
   (select x, dt,
    lead(dt, 1, dt) over (order by dt) lg,
    row_number() over (               order by dt) -
    row_number() over (partition by x order by dt) rn
    from s
   )         
order by dt   
6 окт 10, 20:35    [9564829]     Ответить | Цитировать Сообщить модератору
 Re: дата смены статуса  [new]
саша_ой
Guest
AmKad,
Да, спасибо, вроде то что нужно!
Жаль что, все-таки нельзя без подзапроса, только используя окна
6 окт 10, 20:47    [9564869]     Ответить | Цитировать Сообщить модератору
 Re: дата смены статуса  [new]
фы
Guest
вот правильный ответ: 42
инфа 100%
6 окт 10, 21:41    [9565037]     Ответить | Цитировать Сообщить модератору
 Re: дата смены статуса  [new]
саша_ой
Guest
фы,
??
6 окт 10, 22:15    [9565169]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить