powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите написать запрос
4 сообщений из 4, страница 1 из 1
Помогите написать запрос
    #40054775
alx71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
create table oleg
(
id number not null,
dt1 date not null,
dt2 date not null
);


Код: plsql
1.
2.
3.
4.
insert into oleg (1,'01-JAN-20','05-JAN-20');
insert into oleg (1,'06-JAN-20','10-JAN-20');
insert into oleg (2,'11-JAN-20','15-JAN-20');
insert into oleg (1,'16-JAN-20','20-JAN-20');


Необходимо записи с одинаковым id, идущие в порядке dt1, схлопнуть в одну с dt1=min(dt1) и dt2=max(dt2), т.е.

1 '01-JAN-20' '10-JAN-20'
2 '11-JAN-20' '15-JAN-20'
1 '16-JAN-20' '20-JAN-20'
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40054779
alx71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40054840
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alx71,

а если интервалы вложенные/пересекаются?
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40055017
SenjorPomidor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t as 
(select *
   FROM oleg MATCH_RECOGNIZE 
   ( ORDER BY dt1, id
     MEASURES
        STRT.id AS mrid,
        STRT.dt1 AS mrdt1,
        nvl(NN.dt1, STRT.dt1)  as mrdt12
     ONE ROW PER MATCH
     AFTER MATCH SKIP PAST LAST ROW  
     PATTERN (STRT NN+ | STRT)
     DEFINE
         NN as NN.id = PREV(NN.id)
   ))
select mrid as id, mrdt1 as dt1,  max(oleg.dt2) as dt2 from t, oleg
where oleg.id=t.mrid and oleg.dt1 between t.mrdt1 and t.mrdt12
group by mrid, mrdt1 
order by 2, 1
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите написать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]