从现有列转置配置单元sql数据

xkftehaa  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(708)

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

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

我怎样才能达到上面所要求的表格。

fwzugrvs

fwzugrvs1#

在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;

相关问题