powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / сортировка по предыдущей группе строк/строке
14 сообщений из 14, страница 1 из 1
сортировка по предыдущей группе строк/строке
    #39256824
LeVa78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Если что, не судите строго :-)
Имеется набор данных изменения статуса документа по времени:

StOld StNew Ins
0 1 10.06.2016 13:49:57
1 3 10.06.2016 13:49:58
3 4 10.06.2016 13:50:01
4 3 10.06.2016 13:50:03
2 1 10.06.2016 21:11:13
3 2 10.06.2016 21:11:13
1 2 10.06.2016 21:11:13
2 1 11.06.2016 20:58:10
3 2 11.06.2016 20:58:10
1 3 11.06.2016 20:58:10
2 4 14.06.2016 10:52:30

Есть записи с одинаковой датой изменения 10.06.2016 21:11:13 и 11.06.2016 20:58:10.
Хотелось бы отсортировать смену статусов в последовательности их реальной смены.
Очевидно, что для группы статусов от 10.06.2016 21:11:13 входящим StNew является статус StOld = 3 от 10.06.2016 13:50:03 и т.п.
Т.е. на выходе хотелось бы получить:

StOld StNew Ins
0 1 10.06.2016 13:49:57
1 3 10.06.2016 13:49:58
3 4 10.06.2016 13:50:01
4 3 10.06.2016 13:50:03
3 2 10.06.2016 21:11:13
2 1 10.06.2016 21:11:13
1 2 10.06.2016 21:11:13
2 1 11.06.2016 20:58:10
1 3 11.06.2016 20:58:10
3 2 11.06.2016 20:58:10
2 4 14.06.2016 10:52:30
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256829
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeVa78,

Что делать, когда в течение одной секунды документ дважды побывает в одном и том же статусе?
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256831
LeVa78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это исключительная ситуация - допустимо сообщение об ошибке.
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256832
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeVa78,

Есть возможность добавить в протокол статусов поле со счётчиком?
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256834
LeVa78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Egoр,
есть, но это не по спортивному :-)
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256841
Фотография Egoр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeVa78,

LeVa78не по спортивному :-) Ага. А делать навороты с поиском стартового/финишного статуса и построением переходов, которые еще и кольцеваться могут, это, по-вашему, спорт? :)
Впрочем, если в одну секунду попадает не более трех переходов, то достаточно найти именно старт и финиш.
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256845
LeVa78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Egoр,
старт и финиш ищется легко, если известен предыдущий финиш - подсчёт количества статусов и там и там за вычетом стартового.
Тот статус, которого нечётное количество - финишный для данной группы, ну или обход по дереву.
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256849
uZverrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeVa78,

а если стартовые значения выборки тож будут укладываться в 1 секунду, что будет родительским статусом?
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256855
LeVa78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uZverrr,
начальная запись со StOld = 0 всегда единственная.
На выходе каждой группы записей и тем более одной записи, имеем вполне определённый статус для старта следующей группы.
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256897
uZverrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeVa78,

если тебе нужен последний статус, то соглашусь с Egoр : расширить столбцом, например, ACTIVE_STATUS , и для последнего хранить отметку, закрывая предыдущие записи.
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256903
LeVa78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uZverrr,
проще тогда столбцом с ИД из последовательности.
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256910
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeVa78,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
create table inout (in_ number(2) not null, out_ number(2) not null, eventdt date not null);

insert into inout
  select 0,1,to_date('2016-06-10 13:49:57', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 1,2,to_date('2016-06-10 13:49:58', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 2,3,to_date('2016-06-10 13:50:01', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 3,2,to_date('2016-06-10 13:50:03', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 2,4,to_date('2016-06-10 21:11:13', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 4,1,to_date('2016-06-10 21:11:13', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 1,4,to_date('2016-06-10 21:11:13', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 4,2,to_date('2016-06-11 20:58:10', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 2,3,to_date('2016-06-11 20:58:10', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 3,2,to_date('2016-06-11 20:58:10', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 2,5,to_date('2016-06-14 21:58:10', 'YYYY-MM-DD HH24:MI:SS') from dual union all
  select 5,1,to_date('2016-06-14 22:58:10', 'YYYY-MM-DD HH24:MI:SS') from dual
/

commit;

select in_,out_,eventdt
from (select in_, out_, eventdt, lead(eventdt) over (order by eventdt) as nxt from inout) a
connect by in_ = prior out_ 
  and eventdt = prior nxt 
start with in_ = 0 
order by eventdt, level
/
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39256927
рекурсия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeVa78ОчевидноНа счет очевидности сильно преувеличиваешь, из 1, 2, 3 после 0 можно сформировать шесть последовательностей. и не очевидно, что приложение не допускает запись одного и того же.
...
Рейтинг: 0 / 0
сортировка по предыдущей группе строк/строке
    #39257054
LeVa78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Воронцов,

спасибо!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / сортировка по предыдущей группе строк/строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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