蜂巢中的独特列

时间:2013-09-16 14:00:19

标签: hadoop hive hiveql

我试图在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

这是怎么可能的,在我的第一次或第二次查询中出错了

2 个答案:

答案 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个不同的行。