Om jag förstår logiken rätt är problemet den kartesiska produkten som orsakas av de två kopplingarna. Din fråga är lite svår att följa, men jag tror att avsikten hanteras bättre med korrelerade underfrågor:
select k.*,
(select sum(cost)
from ad_group_keyword_network n
where n.event_date >= '2015-12-27' and
n.ad_group_keyword_id = 1210802 and
k.id = n.ad_group_keyword_id
) as cost,
(select sum(clicks)
from keyword_click c
where (c.date is null or c.date >= '2015-12-27') and
k.keyword_id = c.keyword_id
) as clicks
from ad_group_keyword k
where k.status = 2 ;
Här är motsvarande SQL Fiddle.
EDIT:
Undervalet bör vara snabbare än group by
på oaggregerade data. Du behöver dock rätt index:ad_group_keyword_network(ad_group_keyword_id, ad_group_keyword_id, event_date, cost)
och keyword_click(keyword_id, date, clicks)
.