2016-06-07 6 views
0

Я использую куст для создания моего вывода и пытается получить отдельные строки в моем выходе.Как получить отдельные строки в кусте, если столбец пуст

Я использую select distinct c1,c2,c3,c4 from table.

У меня ниже строки в таблице в качестве примера

C1  C2 C3 C4 

Value1 value2  value4 

Value1 value2  value4 

здесь, в столбце С3 является пустым, и ожидается выход только один столбец среди тех. Но даже после использования отдельного ключевого слова я не могу получить одну строку в качестве вывода. Я вижу обе записи на выходе.

Пожалуйста, помогите мне, если кто-либо столкнулся с этой проблемой раньше и возможное решение, если оно у вас есть.

+0

проверить, является ли 'C3'' NULL' или '' просто пустой строкой, потому что ваш запрос не имеет ошибки и должен возвращать одну запись. – wajeeh

+0

Спасибо wahjee, я сделал COALESE для всех столбцов, и поэтому я не смог понять это. Но когда выполняется отдельная операция, она была NULL, как ожидалось. –

ответ

1

Концепция DISTINCT: это указание удаления повторяющихся строк из набора результатов.

Предположим, вы используете разные столбцы, он будет учитывать каждое уникальное значение столбца.

Пример:

hive> SELECT col1, col2 FROM t1 
    1 3 
    1 3 
    1 4 
    2 5 
hive> SELECT DISTINCT col1, col2 FROM t1 
    1 3 
    1 4 
    2 5 
hive> SELECT DISTINCT col1 FROM t1 
    1 
    2 

В вашем случае, может быть possibiity, что любой столбец может иметь разные значения, и именно поэтому вы получаете 2 строки в качестве выходных.

Пожалуйста сошлитесь HIVE DISTINCT

0

Да, это тот случай, который трудно отлаживать. Столбец C3 может содержать значение, которое не равно ни null, ни ''. вы должны рассмотреть столбец C3 casting.

Смежные вопросы