Как превратить все столбцы в просто имя и значение SQL (например, pd.unstack (level = -1) в Python) - PullRequest
0 голосов
/ 24 апреля 2020

Предположим, у нас есть таблица типа:

date   element1    element2   element3....

date1    42          30           63
date2    32          23           2 
date3    23          3            15

Как превратить эту таблицу во что-то вроде

date   elements   value

date1  element1    42
date2  element1    32
date3  element1    23
date1  element2    30
date1  element3 ...

Это что-то вроде разворота, но я его не понимаю. Если кто-то знает ярлык для этого, я был бы очень признателен.

Спасибо

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы можете использовать unpivot с SQL сервером и Oracle.

select date, 
    elements,
    value
from yourtable
unpivot
(
  value
  for elements in (element1, element2, element3)
) unpiv
0 голосов
/ 24 апреля 2020

В SQL вы можете использовать union all:

select t.*
from ( (select date, 'element1' as elements, element1 from table t) union all 
       (select date, 'element2' as elements, element2 from table t) union all
       (select date, 'element3' as elements, element3 from table t) union all
        . . . 
     ) t
order by date, elements;

Примечание: разные базы данных имеют свой собственный вариант для выполнения этого по-разному.

...