Als ik de logica goed begrijp, is het probleem het Cartesiaanse product dat wordt veroorzaakt door de twee joins. Uw zoekopdracht is een beetje moeilijk te volgen, maar ik denk dat de bedoeling beter kan worden afgehandeld met gecorreleerde subquery's:
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 ;
Hier is de corresponderende SQL Fiddle.
BEWERKEN:
De subselectie moet sneller zijn dan de group by
op de niet-geaggregeerde gegevens. U hebt echter de juiste indexen nodig:ad_group_keyword_network(ad_group_keyword_id, ad_group_keyword_id, event_date, cost)
en keyword_click(keyword_id, date, clicks)
.