旋转一张大桌子

时间:2018-02-09 16:53:39

标签: sql postgresql matrix binary pivot

我有一个非常凌乱的桌子,有两种列,一个' start'点和结束'点。无论起点出现在哪里,都有一个1,无论终点出现在哪里,都有一个1。所有其他单元格都用零填充,因此每行只包含两个1值。这里概括了它的外观:

 datetime       id     start_a start_b start_c .... start_z  end_a ....... end_z
 2018-01-01    900141    1        0      0     ....    0       0   .......   1
 2018-01-02    900142    0        1      0     ....    0       1   .......   0
 2018-01-02    901143    0        0      1     ....    0       0   .......   1    
   .             .       .        .      .     ....    .       .   .......   .
   .             .       .        .      .     ....    .       .   .......   .
   .             .       .        .      .     ....    .       .   .......   .

由于各种起点和终点,此数据中有大量列。此外,还有很多日期。我想要做的是将此表转换为以下格式:

datetime        id     start    end
2018-01-01    900141     a       z
2018-01-02    900142     b       a
2018-01-02    901143     c       z
    .            .       .       .
    .            .       .       .
    .            .       .       .
    .            .       .       .

这似乎很难做到。我听说crosstab()个查询是一个潜在的解决方案,但考虑到我的列数,这怎么可能呢?关于如何转动我庞大凌乱的桌子的任何提示?

0 个答案:

没有答案