Как развернуть несколько столбцов в postgres - PullRequest
0 голосов
/ 24 мая 2019

У меня есть таблица в Postgres, которую я хочу развернуть от широкой к длинной на 2 столбца.

Источник данных слишком велик, чтобы использовать Python, поскольку для этого потребуется загрузка в память. Есть ли в Postgres функция, способная сделать это?

Вот как выглядит таблица ...

date        a1_on_time      a1_days b2_on_time  b2_days
15-Apr-19   TRUE            1       TRUE        1
26-Apr-19   TRUE            2       FALSE       6

Вывод должен выглядеть следующим образом:

date        metric   on_time   days
15-Apr-19   a1       TRUE      1
26-Apr-19   a1       TRUE      2
15-Apr-19   b2       TRUE      1
26-Apr-19   b2       FALSE     6

Любые идеи будут высоко оценены.

1 Ответ

1 голос
/ 24 мая 2019

Используйте запрос объединения:

select date, 'a1' as metric, a1_on_time as on_time, a1_days as days from your_table
union all
select date, 'b2', b2_on_time, b2_days from your_table
order by metric, date;
...