Обновите "флаг" в цели, основываясь на некоторых правилах из 2 исходных таблиц в Hive. - PullRequest
0 голосов
/ 18 октября 2018

Я хочу обновить свой столбец "flag" в моей целевой таблице на "Y" и "N" на основе правил и данных, присутствующих в исходной таблице.

Правило 1 - Если настроение "грустное"в исходной таблице 1 затем измените «flag» как «N»

Правило 2 - Для всех идентификаторов и имен, присутствующих в исходной таблице 2, обновите «flag» как «N».

Rule3- Если поля «dept» содержат значение как «rty», то также флаг должен быть «N».Этот сценарий отсутствует на скриншоте, но, пожалуйста, ответьте также.

Для всех оставшихся полей флаг должен быть «Y».

Пожалуйста, найдите прикрепленный скриншот для ясного понимания.

Screenshot

Спасибо.

1 Ответ

0 голосов
/ 18 октября 2018

Попробуйте ниже использовать случай, когда

    SELECT a.id,
       a.dept,
       a.mood,
       b.name,
       CASE
           WHEN a.mood='sad' THEN 'N'
           WHEN a.dept='ytr' then 'N'
           WHEN b.id IS NULL THEN 'N'
           ELSE 'Y'
       END AS flag
FROM sourcetable1 a
LEFT JOIN sourcetable2 b ON a.id=cast(b.id as int)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...