Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / слияние строк / 11 сообщений из 11, страница 1 из 1
09.08.2017, 16:38
    #39502746
lsd-super
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
слияние строк
что можно сделать, чтобы вместо двух строк получить одну:
...
Рейтинг: 0 / 0
09.08.2017, 16:42
    #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
09.08.2017, 16:47
    #39502760
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
слияние строк
Код: plsql
1.
select lpad(filed1,width,' ')||rpad(filed2,width,' ')||.... from tabname;
...
Рейтинг: 0 / 0
09.08.2017, 16:50
    #39502766
lsd-super
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
слияние строк
Vadim Lejnin,

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

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

на первую строку посмотри
...
Рейтинг: 0 / 0
09.08.2017, 16:55
    #39502770
j2k
j2k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
слияние строк
А, блин, не внимательно исходные данные посмотрел... Мое предложение неверно.
...
Рейтинг: 0 / 0
09.08.2017, 17:06
    #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
09.08.2017, 17:10
    #39502781
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
слияние строк
1. start-of-group (местное наименование метода выделения подобных последовательностей на базе аналитики с последующей группировкой)
2. для совсем древних версий - поискать по форуму "бабушкин трюк" (с) Elic
3. для свежей версии - https://docs.oracle.com/database/121/DWHSG/pattern.htm#DWHSG8956
...
Рейтинг: 0 / 0
09.08.2017, 17:17
    #39502789
lsd-super
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
слияние строк
Stax,

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


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