配置单元中的独立列

w1e3prcc  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(260)

我试图在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
这怎么可能呢?我的第一个或第二个问题有什么问题吗

dced5bon

dced5bon1#

Distinct 是关键字,不是函数。它适用于列表中列出的所有列 select 条款。表的列中只有151616个不同的值,这是很合理的 a ,但列中有多行具有相同的值 a 在其他列中有不同的值。这可能会给你513238个不同的行。

1l5u6lss

1l5u6lss2#

你需要在groupby语句中使用subselect。

select count(a) from (
select a, count(*) from ctry_us_join group by a) b

这只是一个解决方案。

相关问题