Транспонировать в ORACLE SQL (конвертировать 6 столбцов в 3 столбца) - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть вывод, подобный приведенному ниже.

enter image description here

Я хочу преобразовать его в приведенный ниже

enter image description here

Где ID - это счетчик ВСЕГО, ВЫСОКОГО, ОТПРАВЛЕННОГО, ОЖИДАНИЯ, ДАТЫ. Я долго размышлял и не мог получить то, что хочу. Может ли кто-нибудь помочь, пожалуйста, в ORACLE SQL?

Заранее спасибо.

1 Ответ

1 голос
/ 06 февраля 2020

Вот один из вариантов:

SQL> with test (cdate, total, high, sent, waiting, loc) as
  2    (select 1012018, 23, 4, 35, 45, 13456 from dual union all
  3     select 1212018, 74, 2, 77, 82, 98765 from dual
  4    ),
  5  temp as
  6    (select 5 rn, loc, cdate as value from test union all
  7     select 1 rn, loc, total          from test union all
  8     select 2 rn, loc, high           from test union all
  9     select 3 rn, loc, sent           from test union all
 10     select 4 rn, loc, waiting        from test
 11    )
 12  select rn, value, loc
 13  from temp
 14  order by loc, rn;

        RN      VALUE        LOC
---------- ---------- ----------
         1         23      13456
         2          4      13456
         3         35      13456
         4         45      13456
         5    1012018      13456
         1         74      98765
         2          2      98765
         3         77      98765
         4         82      98765
         5    1212018      98765

10 rows selected.

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...