You need to enable JavaScript to run this app. 如何在Hive中去除多列null值且不丢失其他行有效数据
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hive中去除多列null值且不丢失其他行有效数据

Hive 实现两列错位空值拼接方案

你可以结合row_number()窗口函数和关联操作实现需求,具体逻辑和代码如下:

  • 实现逻辑:
    1. 分别筛选出basis_adjutment非空、participant_pct非空的两组数据
    2. 用row_number()窗口函数给两组数据分别生成从1开始的连续行号
    3. 按行号关联两组数据,就能得到一一对应拼接后的结果
  • 示例SQL:
SELECT 
    a.basis_adjutment,
    b.participant_pct
FROM (
    -- 处理basis_adjutment非空的行,生成行号
    SELECT 
        basis_adjutment,
        ROW_NUMBER() OVER() AS rn
    FROM 你的表名
    WHERE basis_adjutment IS NOT NULL
) a
FULL JOIN (
    -- 处理participant_pct非空的行,生成行号
    SELECT 
        participant_pct,
        ROW_NUMBER() OVER() AS rn
    FROM 你的表名
    WHERE participant_pct IS NOT NULL
) b ON a.rn = b.rn;

如果两列的非空值数量一致,就会直接得到你预期的输出;如果数量不一致,FULL JOIN会保留多出来的行,对应另一列显示null。

内容的提问来源于stack exchange,提问作者akhila nagendra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 12:15:04