动态列名称作为postgresql交叉表中的日期

时间:2017-06-16 05:26:16

标签: sql postgresql pivot-table crosstab

目前我的查询如下:

select *
from crosstab(
     $$ select name,id,date,flag from x $$,
     select i::date from generate_series('2017-03-28','2017-03-29','1 day'::interval) i $$)
     as final_result(name text, id numeric, "2017-03-28" numeric,"2017-03-29" numeric);

我在想是否有可能动态提供日期列名称,因为我必须为很多日期执行此操作

table x
name    id     date        flag
x       1      2017-01-02    1
y       2      2017-01-02    2
z       3      2017-01-02    1
x       1      2017-01-03    1
y       2      2017-01-03    2
z       3      2017-01-03    1
x       1      2017-01-04    1
y       2      2017-01-04    2
z       3      2017-01-04    1

output:
name     id     2017-01-02    2017-01-03       2017-01-04   .....more dates
x        1        1             1                1
y        2        2             2                2
z        3        1             1                1
...more rows

我希望在两个指定日期之间动态调用日期,并将相应的日期作为列名。

0 个答案:

没有答案