gpt4 book ai didi

HIVE 选择计数(*) 非空返回比选择计数(*) 更高的值

转载 作者:行者123 更新时间:2023-12-04 11:34:52 25 4
gpt4 key购买 nike

我目前正在使用 Hive 进行一些数据探索,无法解释以下行为。假设我有一个带有字段 master_id 的表(名为 mytable)。

当我计算我得到的行数时

select count(*) as c from mytable 
c
1129563

如果我想计算具有非空 master_id 的行数,我会得到一个更高的数字
select count(*) as c from mytable where master_id is not null
c
1134041

此外,master_id 似乎永远不会为空。
select count(*) as c from mytable where master_id is null
c
0

我无法解释添加 where 语句最终如何增加行数。有没有人有任何提示来解释这种行为?

谢谢

最佳答案

很可能您的查询没有使用统计信息,因为设置了此参数:

set hive.compute.query.using.stats=true;

尝试将其设置为 false 并再次执行。

或者,您可以计算表的统计信息。
ANALYZE TABLE SYNTAX

还可以在 INSERT OVERWRITE 期间自动收集统计信息:
set hive.stats.autogather=true;

关于HIVE 选择计数(*) 非空返回比选择计数(*) 更高的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912784/

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