2016-06-02 1 views
0

Я хотел бы получить одну строки только, содержащий неизменяемые значения нуля из таблицы, которые могут быть воспроизведены с помощью следующего кода:Объединение нескольких строк со значениями, не являющимися нулевых в Redshift

select 
    1 as unique_id, 
    'null' as first, 
    'second' as second, 
    'null' as third 
union all 
select 
    1 as unique_id, 
    'first' as first, 
    'null' as second, 
    'null' as third 
union all 
select 
    1 as unique_id, 
    'null' as first, 
    'null' as second, 
    'third' as third 
+2

Пожалуйста, представьте ожидаемый выход. Не должно быть только NULL вместо «NULL» - это текст, а не пустое значение. – Adam

ответ

0

выхода вашего поставки код (предполагается, что 'нулевой' должен быть NULL) является:

1, 'first', NULL, NULL 
1, NULL, 'second', NULL 
1, NULL, NULL, 'third' 

Под 'слиянием', я предполагаю, что вы хотите вывод, который выглядит следующим образом:

1, 'first', 'second', 'third' 

Это может быть сделано с:

SELECT MAX(first), MAX(second), MAX(third) FROM ... GROUP BY unique_id 

Конечно, это предполагает, что у вас есть только каждое значение, появляющийся раз в unique_id. Аналогичным образом можно использовать другие функции, такие как MIN или LISTAGG - они просто должны быть чем-то, что исключает значения NULL.

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