AVS*_*AVS 2 sql null hive count distinct
我一直在努力解决Hive SQL中的问题,并且发现了问题所在:
select distinct 'A', NULL;
Run Code Online (Sandbox Code Playgroud)
返回'A',NULL
select count(distinct 'A', NULL);
Run Code Online (Sandbox Code Playgroud)
返回0
select count(distinct 'A', coalesce(NULL,''));
Run Code Online (Sandbox Code Playgroud)
返回1.
我正在使用较大查询中的选择行并对结果进行过滤(= 1).结果为0,我丢失了很多行.
为什么带有NULL列的行不会对计数(不同)查询的结果产生影响?
这是count蜂巢的界面:
count(*) 统计所有行
count(col1) 计算col1不为null的所有行
count(distinct col1,col2...) 计算指定列不为空的所有不同行
作为特定问题的解决方案,您可以尝试使用逻辑嵌套查询并count(*)在外部查询中使用:
select count(*) from (select distinct 'A', NULL) a;
返回1