如何将 Redshift 表格从列转换为行?
例如,如果我们有一个通用(未知)的表格,如下所示:
source table:
date id alfa beta gamma ... omega
2018-08-03 1 1 2 3 4
2018-08-03 2 4 3 2 1
...
2018-09-04 1 3 1 2 4
...
我们如何达到以下的结果?
transposed table:
date id column_name column_value
2018-08-03 1 alfa 1
2018-08-03 1 beta 2
...
2018-08-03 2 omega 1
...
2018-09-04 1 gamma 2
...
目标表中的列数(alfa,beta,gamma,...,omega)均为动态的(因此我们正在寻找一种解决方案,不需要每个列的
case
when
映射,因为我们想将其应用于几个不同的表)。但是,我们将在所有目标表中都有日期和ID字段(或者至少在所有表中都有主键或候选键)。我们的Redshift版本是:PostgreSQL 8.0.2,Redshift 1.0.3380
。我们该如何做到这一点?