допустим, у меня есть TRADE
таблица и TRADE_EXECUTION
таблица.Общая связь между ними: TRADE_ID
.
TRADE_EXECUTION
имеет все исполнения брокера, которые являются частью окончательного TRADE
(таким образом, информация о выполненном количестве, метка времени исполнения и т. Д.).Это означает, что для каждой записи в таблице TRADE
может быть несколько, одна или нет соответствующих строк в TRADE_EXECUTION
.
Так что, если я сделаю стандартные LEFT JOIN
, строки из TRADE
будут продублированы в случаеЕсть несколько соответствующих записей в TRADE_ATTRIBUTES
.
Вместо дублирования строк, которые я хочу показать в моих SELECT
столбцах запросов TRADE_ID
, MIN(EXECUTION_TIMESTAMP)
и MAX(EXECUTION_TIMESTAMP)
для каждой записи из таблицы TRADE
.
Так что, если есть 5 исполнений, указывающих на одну сделку, я хочу показать из них самую раннюю и последнюю отметку времени исполнения и поместить в одну строку вместо отображения 5 строк.
Мне также нужно сохранитьпомните, что таблица TRADE_EXECUTION довольно большая (ежедневно добавляется 200 тысяч записей, всего около 50 миллионов).
Как мне этого добиться?