我试图在HiveQL中获取一个查询结果,其中一列是不同的。但结果不匹配。表中有近20列。
create table uniq_us row format delimited fields terminated by ',' lines terminated by '\n' as select distinct(a),b,c,d,e,f,g,h,i,j from ctry_us_join;
得到的行数:513238
select count(distinct a) from ctry_us_join;
产生的行数:151616
这是怎么可能的,在我的第一次或第二次查询中出错了
答案 0 :(得分:0)
你需要使用group by语句进行subselect。
select count(a) from (
select a, count(*) from ctry_us_join group by a) b
这只是一个解决方案。
答案 1 :(得分:0)
Distinct
是一个关键字,而不是一个函数。它适用于您在select
子句中列出的所有列。您的表在a
列中只有151,616个不同的值是非常合理的,但是列a
中具有相同值的多个行在其他列中具有不同的值。这可能会给你513,238个不同的行。