我试图在hiveql中获得一个列为distinct的查询结果。然而结果并不匹配。表中几乎有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条答案
按热度按时间dced5bon1#
Distinct
是关键字,不是函数。它适用于列表中列出的所有列select
条款。表的列中只有151616个不同的值,这是很合理的a
,但列中有多行具有相同的值a
在其他列中有不同的值。这可能会给你513238个不同的行。1l5u6lss2#
你需要在groupby语句中使用subselect。
这只是一个解决方案。