определить, повторяется ли одно и то же значение в столбце с использованием улья - PullRequest
0 голосов
/ 18 октября 2019

У меня есть таблица улья, в которой есть столбец с именем DATALIST. Может иметь значения ниже

XYZ_OLD
XYZ_NEW
ABC_OLD
EFG_OLD
EFG_NEW
PQR_NEW

Мне нужно создать вывод, который бы идентифицировал все имена, которые не имеют ни _NEW, ни _OLDв столбце. В этих сценариях он должен вывести следующее

Value  Reason
ABC    Missing NEW
PQR    Missing OLD
XYZ    Contains Both NEW and OLD
EFG    Contains both NEW and OLD

. Любое предложение / помощь по логике SQL / HIVEQL будет по-настоящему оценено.

1 Ответ

1 голос
/ 18 октября 2019

Я думаю, что вы можете сделать:

select split(datalist, '_')[1],
       (case when sum(case when datalist like '%NEW' then 1 else 0 end) > 0 and
                  sum(case when datalist like '%OLD' then 1 else 0 end) > 0
             then 'BOTH'
             when sum(case when datalist like '%NEW' then 1 else 0 end) > 0 
             then 'NEW ONLY'
             else 'OLD ONLY'
         end)

from t
group by split(datalist, '_')[1];
...