Преобразование Oracle Query в Hive - PullRequest
0 голосов
/ 17 марта 2019

Как мне преобразовать приведенный ниже запрос в Oracle в Hive?

SELECT A.EMP_NO, A.LOGIN_TIMESTAMP FROM TABLE1 A, TABLE2 B 
WHERE A.EMP_NO = 1234 AND B.EMP_CURR = 
(SELECT MIN(EMP_CURR) FROM TABLE2 WHERE EMP_NO = A.EMP_NO AND 
LOGIN_TIMESTAMP = A.LOGIN_TIMESTAMP AND EMP_STATUS_CODE <> 'P')

1 Ответ

0 голосов
/ 17 марта 2019

Используйте dense_rank(), чтобы получить строки с минимумом EMP_CURR:

SELECT A.EMP_NO, A.LOGIN_TIMESTAMP
  FROM TABLE1 A
       INNER JOIN (select B.*, 
                          dense_rank() over(partition by B.EMP_NO, B.LOGIN_TIMESTAMP order by B.EMP_CURR) rn
                     from TABLE2 B where EMP_STATUS_CODE <> 'P'
                  ) B
                  on B.EMP_NO = A.EMP_NO and B.LOGIN_TIMESTAMP = A.LOGIN_TIMESTAMP and B.rn=1
  where B.rn=1 and A.EMP_NO = 1234;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...