我试图从表中获取重复的记录计数,但对于特定的分区,数据不可用,所以hive只打印“ok”结果。是否可以使用0或null之类的值更改此结果。是的,用nvl,coalesce,case选项都试过了,还是没问题。目标是只检查重复计数,所以至少需要一个值
select col1, col2, nvl(count(*),0) AS DUPLICATE_ROW_COUNT, 'xyz' AS TABLE_NAME
from xyz
where data_dt='20170423'
group by col1,col2
having count(*) >1
1条答案
按热度按时间9jyewag01#
它不会返回空数据集上的任何行,因为您正在使用
group by
以及having
过滤器。通过没有要分组的内容进行分组,这就是它不返回任何行的原因。不带group by和having query返回0:作为一种解决方案,当数据集为空时,可以用空行合并所有数据
也可以使用cte(
WITH
)以及WHERE NOT EXISTS
而不是inner join
对于您的子查询,没有测试它。您还可以使用shell获取结果并在空值上进行测试: