SQL 或 PIG 脚本重构 table 以反映重复行中的列

SQL or PIG script to restructure a table to reflect Columns in repeating rows

所以我有一个 table

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

我想将此 table 转换为

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

使用 PIG 拉丁语或 SQL?

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 operator

,这可以高效地完成