You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Hive实现同表列转行:多部门字段拆分为单行单值的实操问题

Hive列转行实现方案

你可以使用Hive内置的LATERAL VIEW + explode 函数实现需求,具体查询语句如下:

SELECT 
  EmployeeId,
  Dept
FROM Employee_History
LATERAL VIEW explode(array(Dept1, Dept2, Dept3)) t AS Dept;

逻辑说明

  • 首先调用array(Dept1, Dept2, Dept3)将同一行的三个部门字段拼接为一个数组
  • 再通过explode函数将数组中的每个元素拆分为独立的行
  • LATERAL VIEW会将拆分生成的行和原表对应的EmployeeId字段关联,最终得到一员工对应多部门的多行输出结果

注意事项

如果你的表中存在Dept1/Dept2/Dept3为NULL的场景,上述语句会自动过滤掉NULL值的行;如果需要保留NULL对应的行,可以将explode替换为explode_outer。

内容的提问来源于stack exchange,提问作者Martin James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:27:07