从现有列

时间:2018-03-12 18:12:15

标签: sql hive transpose

我目前正在使用以下查询来获得以下结果

select 
  mt.name,
  mt.title,
  mt.type,
  mt.day1,
  mt.day2

from mytable mt

给我的结果如

name       title      type      day1              day2
batman     super      gothom    12/22/1990        2/2/1990
batman     super      dc        1/9/1990          7/5/1990

新选择应根据类型创建新列,并从特定列中获取数据'在这种情况下为day2'我理想地希望我的结果看起来像

name       title      gothom          dc      
batman     super      2/2/1990        7/5/1990

如何实现上述所需的表格。

1 个答案:

答案 0 :(得分:2)

在Hive中,您可以使用条件聚合来转动数据:

select mt.name, mt.title,
       max(case when type = 'gothom' then day2 end) as gothom,
       max(case when type = 'dc' then day2 end) as dc
from mytable mt
group by mt.name, mt.title;