Hive - получить последнюю запись без пустого столбца - PullRequest
0 голосов
/ 15 октября 2019

У меня есть 2 таблицы: Таблица 1:

emp_id emp_log_id timestamp
1      234       04 Oct 2019 23:10
1                05 Oct 2019 23:10
2      335       04 Oct 2019 23:10
2                03 Oct 2019 23:10
3                04 Oct 2019 23:10
4      324       04 Oct 2019 23:10

Мой ожидаемый результат:

emp_id emp_log_id timestamp
1 234 04 Oct 2019 23:10
2 335 04 Oct 2019 23:10
3  04 Oct 2019 23:10
4 324 04 Oct 2019 23:10
  1. Если последняя запись имеет emp_log_id,затем возьмите это (пример emp_id: 2
  2. Если последняя запись не имеет emp_log_id, вернитесь к ранее обновленной записи (пример emp_id: 1)

Какнаписать запрос улья для этого .

В другой таблице есть такие данные, как: Таблица 2:

emp_id emp_log_id
    1 234
    1  05
    2 335
    2  03
    3  04
    4 324

Как реализовать то же требование в этой таблице 2.

Пожалуйста, помогите.

Ответы [ 2 ]

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

с использованием функции агрегирования max() сделает это.

select emp_id, max(emp_log_id) as emp_log_id, timestamp 
from table1
group by emp_id, timestamp
0 голосов
/ 15 октября 2019

Я бы порекомендовал row_number():

select t.*
from (select t.*,
             row_number() over (partition by emp_id
                                order by (emp_log_id is not null) desc, timestamp desc
                               ) as seqnum
      from t
     ) t
where seqnum = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...