У меня есть две простые таблицы:
источник
id count date
6 30 10-28
7 80 10-29
5 20 10-28
4 10 10-27
пункт назначения
id count date
7 10 10-29
5 90 10-28
6 10 10-28
Что я хочусостоит в том, чтобы объединить содержимое источника в место назначения, где их идентификаторы и даты совпадают, а максимальное значение количества сравнивается и выбирается.Запрос также должен иметь возможность вставлять строку из источника в место назначения, если строка с таким идентификатором + дата еще не существует в месте назначения.
После выполнения запроса место назначения должновыглядит так:
id count date
7 80 10-29
5 90 10-28
6 30 10-28
4 10 10-27
Это вопрос, о котором я думал до сих пор, но у меня возникают проблемы с обновлением таблицы назначения, и я не могу использовать MERGE.Я также не уверен в его эффективности:
select id, max(count), date from (
select id, max(count) as count, date from source group by id, count, date
union
select id, max(count) as count, date from destination group by id, count, date
)
group by id, date;
Я использую Amazon Redshift для выполнения своих запросов.
Заранее спасибо!