2013-09-16 1 views
0

Я пытаюсь получить результат запроса в 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

Distinct - это ключевое слово, а не функция. – Olaf

ответ

0

U необходимо использовать подзаголовок с указанием группы.

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

Это всего лишь одно решение для этого.

+0

Спасибо Дино. Проблема в том, что я хочу получить результат первого запроса со всеми столбцами. Второй запрос - это проверить подлинность результатов. – LonelySoul

+0

Можете ли вы предоставить образцы данных из таблицы и вывода, которые вы хотите получить, чтобы мы могли написать вам запрос, который вы хотите? –

0

Distinct - это ключевое слово, а не функция. Он применяется ко всем столбцам, указанным в вашем предложении select. Весьма разумно, что ваша таблица имеет только 151 616 различных значений в столбце a, но несколько строк с тем же значением в столбце a имеют разные значения в других столбцах. Это может дать вам 513 238 различных строк.

+0

Спасибо Olaf. Итак, каково решение для получения результатов запроса. – LonelySoul

+0

Когда у вас есть две записи с одинаковыми значениями в поле «a» и разные значения в других полях, какие значения вы хотите в новой таблице? – Olaf