【问题标题】:Hive - Adding 2 columns for each row with some null valuesHive - 为每行添加 2 列,其中包含一些空值
【发布时间】:2019-02-20 20:42:20
【问题描述】:

我有一个 SQL 查询,我要在另一个表上加入 2 个表 - A 和 B 表 A 在 ID = ID 上连接到表 E 表 B 在 ID = SKU 上与表 E 连接

Table A 和 Table B 都有 Price、Value 列

有时这里有空值

我已经完成了 Select ID, (A.Price + B.Price) AS TEST, (A.Value + B.Value) 来自 E 的 AS TEST2

但是对于 test 和 test2 的所有结果,我都得到了 NULL 值

查询是:

select PII, PII_Count, SK_Count, (PII_Count - SK_Count) as TEST from CIEER
left join ccq on CIEER.PII = ccq.PRIE 
left join ccrq on CIEER.PII = ccrq.SKIE
order by PII_Count desc

【问题讨论】:

  • 样本数据和期望的结果真的很有帮助。另外,你想要什么结果?
  • 我没有任何可以提供的示例数据,但是当我在 HUE 中导出数据时,看起来 NULL 值保留在列中......我正在尝试将两者加在一起,如果要么是 NULL ,就获取具有值的那个的值,如果两者都为空,则将其留空。
  • 将您的实际查询放在这里。在上面的查询中,您甚至没有加入表 A 和 B。
  • 在上面添加了查询

标签: sql hiveql


【解决方案1】:

如果 PII_count 或 SK_Count 为 null 那么它将返回 null ,为防止 null 计算您应该使用nvl 函数,如下所示:

(nvl(PII_count, 0) - nvl(SK_Count,0)) as TEST

或者,您也可以使用COALESCE 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 2021-12-03
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    相关资源
    最近更新 更多