powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / слияние строк
11 сообщений из 11, страница 1 из 1
слияние строк
    #39502746
lsd-super
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что можно сделать, чтобы вместо двух строк получить одну:
...
Рейтинг: 0 / 0
слияние строк
    #39502751
lsd-super
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lsd-super, ответ хотелось получить такой:



with t as
(select 1 id, 'act' state, 'std' sub_state , '01.01.2016' v_from,'01.02.2016' v_to from dual
union all
select 1 , 'pas' , 'wait' , '01.02.2016' ,'01.03.2016' from dual
union all
select 1 , 'act' , 'std' , '01.03.2016' ,'01.04.2016' from dual
union all
select 1 , 'act' , 'std' , '01.04.2016' ,'01.05.2016' from dual
union all
select 1 , 'pas' , 'wait' , '01.05.2016' ,'01.06.2016' from dual)
select * from t
...
Рейтинг: 0 / 0
слияние строк
    #39502760
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
select lpad(filed1,width,' ')||rpad(filed2,width,' ')||.... from tabname;
...
Рейтинг: 0 / 0
слияние строк
    #39502766
lsd-super
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

Это слияние столбцов, а не строк
...
Рейтинг: 0 / 0
слияние строк
    #39502767
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lsd-super,
Код: plsql
1.
select ... ,min(date_from), max(date_to) group by ...
...
Рейтинг: 0 / 0
слияние строк
    #39502768
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lsd-super,

start of group
...
Рейтинг: 0 / 0
слияние строк
    #39502769
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
j2k,

на первую строку посмотри
...
Рейтинг: 0 / 0
слияние строк
    #39502770
j2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, блин, не внимательно исходные данные посмотрел... Мое предложение неверно.
...
Рейтинг: 0 / 0
слияние строк
    #39502780
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lsd-super,

Код: 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.
27.
28.
29.
30.
31.
32.
SQL> ed
Wrote file afiedt.buf

  1  with t as
  2  (select 1 id, 'act' state, 'std' sub_state , '01.01.2016' v_from,'01.02.2016' v_to from dual
  3  union all
  4  select 1 , 'pas' , 'wait' , '01.02.2016' ,'01.03.2016' from dual
  5  union all
  6  select 1 , 'act' , 'std' , '01.03.2016' ,'01.04.2016' from dual
  7  union all
  8  select 1 , 'act' , 'std' , '01.04.2016' ,'01.05.2016' from dual
  9  union all
 10  select 1 , 'pas' , 'wait' , '01.05.2016' ,'01.06.2016' from dual)
 11  ,tt as (select id,state,sub_state,to_date(v_from) d_from,to_date(v_to) d_to from t)
 12  --
 13  select id,state,sub_state, min(d_from) d_from,max(d_to) d_to from
 14  (
 15    select
 16      tt.*
 17     ,sum (d_to-d_from) over (partition by id,state,sub_state order by d_from) d
 18    from tt tt
 19  )
 20  group by id,state,sub_state,d_to-d
 21* order by 1,4
SQL> /

        ID STA SUB_ D_FROM   D_TO
---------- --- ---- -------- --------
         1 act std  01.01.16 01.02.16
         1 pas wait 01.02.16 01.03.16
         1 act std  01.03.16 01.05.16
         1 pas wait 01.05.16 01.06.16




.....
stax
...
Рейтинг: 0 / 0
слияние строк
    #39502781
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. start-of-group (местное наименование метода выделения подобных последовательностей на базе аналитики с последующей группировкой)
2. для совсем древних версий - поискать по форуму "бабушкин трюк" (с) Elic
3. для свежей версии - https://docs.oracle.com/database/121/DWHSG/pattern.htm#DWHSG8956
...
Рейтинг: 0 / 0
слияние строк
    #39502789
lsd-super
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

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


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