SQL или PIG-скрипт для реструктуризации таблицы для отражения столбцов в повторяющихся строках

#sql #apache-pig

#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 latin или SQL?

Комментарии:

1. было бы проще использовать sql union .

2. Если вы используете SQL Server, вы можете сделать это с помощью команды PIVOT .

Ответ №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 . Это можно сделать эффективно, если ваш компонент database engine поддерживает unpivot operator

Комментарии:

1. Спасибо вам обоим: профсоюз и unpivot — это именно то, что я искал. ценю вашу помощь