DROP TABLE IF EXISTS tracking_events_tmp; DROP TABLE IF EXISTS open_events_tmp; CREATE TABLE tracking_events_tmp (`APIKey` UInt32, `EventDate` Date) ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) ORDER BY (APIKey, EventDate); CREATE TABLE open_events_tmp (`APIKey` UInt32, `EventDate` Date) ENGINE = MergeTree PARTITION BY toMonday(EventDate) ORDER BY (APIKey, EventDate); insert into open_events_tmp select 2, '2020-07-10' from numbers(32); insert into open_events_tmp select 2, '2020-07-11' from numbers(31); insert into tracking_events_tmp select 2, '2020-07-10' from numbers(1881); insert into tracking_events_tmp select 2, '2020-07-11' from numbers(1623); SELECT EventDate FROM ( SELECT EventDate FROM tracking_events_tmp AS t1 WHERE (EventDate >= toDate('2020-07-10')) AND (EventDate <= toDate('2020-07-11')) AND (APIKey = 2) GROUP BY EventDate ) FULL OUTER JOIN ( SELECT EventDate FROM remote('127.0.0.{1,3}', currentDatabase(), open_events_tmp) AS t2 WHERE (EventDate >= toDate('2020-07-10')) AND (EventDate <= toDate('2020-07-11')) AND (APIKey = 2) GROUP BY EventDate WITH TOTALS ) USING EventDate ORDER BY EventDate settings totals_mode = 'after_having_auto', group_by_overflow_mode = 'any', max_rows_to_group_by = 10000000, joined_subquery_requires_alias=0; DROP TABLE IF EXISTS tracking_events_tmp; DROP TABLE IF EXISTS open_events_tmp;