Это проблема: у меня есть эта промежуточная таблица:
key0 key1 timestamp partition_key
5 5 2020-03-03 14:42:21.548 1
5 4 2020-03-03 14:40:11.871 1
4 3 2020-03-03 14:43:47.602 2
И эта целевая таблица:
key0 key1 timestamp partition_key
5 4 2020-03-03 13:43:16.695 1
5 5 2020-03-03 13:45:24.793 1
5 2 2020-03-03 13:47:30.668 1
5 1 2020-03-03 13:48:30.669 1
4 3 2020-03-03 13:53:47.602 2
43 3 2020-03-03 14:00:14.016 2
Я хочу получить этот вывод:
key0 key1 timestamp partition_key
5 5 2020-03-03 14:42:21.548 1
5 4 2020-03-03 14:40:11.871 1
5 2 2020-03-03 13:47:30.668 1
5 1 2020-03-03 13:48:30.669 1
4 3 2020-03-03 14:43:47.602 2
43 3 2020-03-03 14:00:14.016 2
В поле метки времени я хочу самую последнюю запись, когда key0, key1 и partition_key. Кроме того, мне нужны уже существующие записи в целевой таблице, но их нет в промежуточной таблице
Сначала я попытался выполнить этот запрос:
select
t1.key0,
t1.key1,
t1.timestamp,
t2.partition_key
from staging_table t2
left outer join target_table t1 on
t1.key0=t2.key0 AND
t1.key1=t2.key1 AND
t1.timestamp=t2.timestamp;