Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разделить строки по колонкам / 7 сообщений из 7, страница 1 из 1
06.06.2017, 16:43
    #39467034
leone-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строки по колонкам
Добрый день.
Можно ли сделать запросом таблицу из этой
c1c2c3gr1f1agr1f1bgr1f1cgr1f2dgr2f2egr2f2fgr2f3ggr2f3h

в эту?
c1f1f2f3gr1adgr1bgr1cgr2eggr2fh
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with 
  t as 
  (
select 'gr1' as c1, 'f1' as c2,'a' as c3 from dual
union all
select 'gr1','f1','b' from dual
union all
select 'gr1','f1','c' from dual
union all
select 'gr1','f2','d' from dual
union all
select 'gr2','f2','e' from dual
union all
select 'gr2','f2','f' from dual
union all
select 'gr2','f3','g' from dual
union all
select 'gr2','f3','h' from dual  
  )
select * from t    


не много не так получается как хотят
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
with 
  t as 
  (
select 'gr1' as c1, 'f1' as c2,'a' as c3 from dual
union all
select 'gr1','f1','b' from dual
union all
select 'gr1','f1','c' from dual
union all
select 'gr1','f2','d' from dual
union all
select 'gr2','f2','e' from dual
union all
select 'gr2','f2','f' from dual
union all
select 'gr2','f3','g' from dual
union all
select 'gr2','f3','h' from dual  
  )
select c1
     , case when c2 = 'f1' then c3 end f1 
     , case when c2 = 'f2' then c3 end f2   
     , case when c2 = 'f3' then c3 end f3           
  from t   



значения f1, f2, f3 - конечное, они могут быть могут и не быть, f4 не будет никогда.
gr1, gr2, gr3 - может меняться до gr100.
Ну а колонка С3 может принимать любые значения

Спасибо.
...
Рейтинг: 0 / 0
06.06.2017, 16:54
    #39467052
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строки по колонкам
leone-
а почему не в эту?
c1f1f2f3gr1agr1bdgr1cgr2ehgr2fg
pivot/unpivot
...
Рейтинг: 0 / 0
06.06.2017, 16:59
    #39467058
leone-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строки по колонкам
Vint,
сортировка по полю С3, и заполнять сверху по группе
...
Рейтинг: 0 / 0
06.06.2017, 17:09
    #39467075
leone-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строки по колонкам
Vintleone-
а почему не в эту?
pivot/unpivot
авторДалее, при создании нашего запроса кросс-таблицы, нам необходимо указать агрегатную функцию. Вы можете использовать любую из функций, например: SUM, COUNT, MIN, MAX или AVG


Мне ну нужно ничего суммировать и считать кол-во, нужно просто собрать строки сверху вниз о группе.
...
Рейтинг: 0 / 0
06.06.2017, 17:23
    #39467090
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строки по колонкам
leone-, нужно просто собрать строки сверху вниз о группеSTFF соединение по порядковому номеру
...
Рейтинг: 0 / 0
06.06.2017, 17:27
    #39467096
stax..
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделить строки по колонкам
leone-,
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
with  t as 
  (
select 'gr1' as c1, 'f1' as c2,'a' as c3 from dual
union all
select 'gr1','f1','b' from dual
union all
select 'gr1','f1','c' from dual
union all
select 'gr1','f2','d' from dual
union all
select 'gr2','f2','e' from dual
union all
select 'gr2','f2','f' from dual
union all
select 'gr2','f3','g' from dual
union all
select 'gr2','f3','h' from dual  
  )
, tt as (
select t.*
,row_number() over (partition by c1,c2 order by c3) rn
 from t)
select c1
,max(decode(c2,'f1',c3)) f1
,max(decode(c2,'f2',c3)) f2
,max(decode(c2,'f3',c3)) f3
 from tt
group by c1,rn
order by 1,2,3,4
/
SQL> /

C1  F F F
--- - - -
gr1 a d
gr1 b
gr1 c
gr2   e g
gr2   f h

SQL>



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


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