我的数据如下所示:
身份证 | 行为1 | act1_st | act1_结束 | 第二幕 | act2_st | act2_结束 |
---|---|---|---|---|---|---|
1 | A | 1/1/21 08 | 1/1/21 09 | B | 1/1/21 10 | 1/1/21 11 |
1 | C | 21/08/1/4 | 1/4/21 09 | B | 1/5/21 10 | 1/5/21 11 |
2 | A | 21/08/1/2 | 1/2/21 09 | B | 1/3/21 10 | 1/3/21 11 |
2 | B | 21/08/1/6 | 1/6/21 09 | 空 | 空 | 空 |
我想调换开始和结束时间,以及相应的act_ID:
身份证 | act_ID | 开始 | 结束 |
---|---|---|---|
1 | A | 1/1/21 08 | 1/1/21 09 |
1 | B | 1/1/21 10 | 1/1/21 11 |
1 | C | 21/08/1/4 | 1/4/21 09 |
1 | B | 1/5/21 10 | 1/5/21 11 |
2 | A | 21/08/1/2 | 1/2/21 09 |
2 | B | 1/3/21 10 | 1/3/21 11 |
2 | B | 21/08/1/6 | 1/6/21 09 |
我一直在尝试使用 unpivot,例如将所有 act1_start 和 act2_start 逆透视到“开始”列中,但在加入开始结束时间时遇到问题,这样开始就在结束之前,并且 act_ID 链接到正确的间隔.
如有任何建议,我们将不胜感激。谢谢你
我会使用一个简单的联合:
select id, act1 act_ID, act1_st start, act1_end end
from table
union all
select id, act2, act2_st, act2_end
from table