将日期时间列逆透视到行 Snowflake

问题描述 投票:0回答:1

我的数据如下所示:

身份证 行为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 链接到正确的间隔.

如有任何建议,我们将不胜感激。谢谢你

snowflake-cloud-data-platform
1个回答
0
投票

我会使用一个简单的联合:

select id, act1 act_ID, act1_st start, act1_end end
from table
union all
select id, act2, act2_st, act2_end
from table
© www.soinside.com 2019 - 2024. All rights reserved.