gpt4 book ai didi

sql - 为什么 SUM(a + b) != SUM(a) + SUM(b) 在 Hive 中?

转载 作者:可可西里 更新时间:2023-11-01 16:24:19 29 4
gpt4 key购买 nike

我正在运行 Hive 1.1.0 并看到对于两个 bigint 列,active_usersinactive_usersSUM(active_users + inactive_users) <SUM(active_users) + SUM(inactive_users).

为什么会这样,因为它应该是整数的简单加法?

最佳答案

当一个值而不是两个值都为 NULL 时就是这种情况。

所以,考虑:

 a     b
1 1
2 NULL
NULL 3

然后 sum(a) + sum(b) 是:(1 + 2)(1 + 3) 的总和= 7. NULL 被忽略。

但是,sum(a + b) 是以下各项的总和:

 (1 + 1)
(2 + NULL)
(NULL + 3)

计算结果为:

 2
NULL
NULL

NULL 被忽略,所以结果是 2。

换句话说,SUM() 会忽略 NULL 值,但 + 不会。

关于sql - 为什么 SUM(a + b) != SUM(a) + SUM(b) 在 Hive 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56654428/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com