我有一个非常凌乱的桌子,有两种列,一个' 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()
个查询是一个潜在的解决方案,但考虑到我的列数,这怎么可能呢?关于如何转动我庞大凌乱的桌子的任何提示?