用于重构表以反映重复行中的列的SQL或PIG脚本

时间:2016-10-14 15:31:08

标签: sql apache-pig

所以我有一张桌子

ID Tag1 Tag2 Tag3
1   a    b
2   a    b    c
3   a

我想将此表格转换为

ID Tag
1   a
1   b
2   a
2   b
2   c
3   a

使用PIG拉丁语还是SQL?

1 个答案:

答案 0 :(得分:1)

SQL中,您可以使用UNION ALL

执行此操作
select Id, Tag1 From yourtable Where Tag1 <> ''
Union All
select Id, Tag2 From yourtable Where Tag2 <> ''
Union All
select Id, Tag3 From yourtable Where Tag3 <> ''

如果您不想要重复,请将UNION ALL更改为UNION。如果您的数据库引擎支持unpivot运算符

,则可以有效地完成此操作