Я намагаюся отримати результат запиту в 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 для відповіді № 1U потрібно використовувати subselect з групою за висловом.
select count(a) from (
select a, count(*) from ctry_us_join group by a) b
Це лише одне рішення для цього.
0 для відповіді № 2
Distinct
це ключове слово, а не функція. Це стосується всіх стовпців, які ви перелічені у вашому select
пост. Цілком розумно, що у вашому стіл у стовпці є лише 151,616 різних значень a
, але кілька строк із тим самим значенням у стовпці a
мають інші значення в інших стовпцях. Це може дати вам 513 238 різних рядків.