从现有列转置 Hive SQL 数据
Posted
技术标签:
【中文标题】从现有列转置 Hive SQL 数据【英文标题】:Transpose Hive SQL data from existing column 【发布时间】:2018-03-12 18:12:14 【问题描述】:我目前正在使用以下查询来获取以下结果
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
我怎样才能实现上面想要的表格。
【问题讨论】:
你不想要第一天的信息。对吗? @Counter10000 是正确的 How to transpose/pivot data in hive?的可能重复 【参考方案1】:在 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;
【讨论】:
以上是关于从现有列转置 Hive SQL 数据的主要内容,如果未能解决你的问题,请参考以下文章