Snowflake中实现日期时间相关列的Unpivot转换方法咨询
Snowflake 数据行转置解决方案
可以通过UNION ALL将每行的两个活动条目拆分并合并,同时过滤空值,确保活动ID、开始/结束时间的对应关系完全匹配:
SELECT ID, act1 AS act_ID, act1_st AS start, act1_end AS end FROM your_table_name UNION ALL SELECT ID, act2 AS act_ID, act2_st AS start, act2_end AS end FROM your_table_name WHERE act2 IS NOT NULL ORDER BY ID, start;
逻辑说明
- 第一个
SELECT提取每行的act1相关数据,生成独立的活动行 - 第二个
SELECT提取每行的act2相关数据,通过WHERE act2 IS NOT NULL过滤无活动的无效条目 UNION ALL合并两部分结果,最后按ID和start排序,输出结构与目标完全一致
内容的提问来源于stack exchange,提问作者snalmznh
相关产品推荐
相关产品推荐

