यदि आपकी टाइमलाइन निरंतर है (प्रत्येक दिन 1 मान) तो आप अपने पहले प्रयास को इस तरह सुधार सकते हैं:
SELECT c.date,
( SELECT AVERAGE(m.value)
FROM measures as m
WHERE m.measured_on_dt
BETWEEN DATE_SUB(c.date, INTERVAL 5 day) AND c.date
) as `average_to_date`
FROM calendar c
WHERE c.date between date1 AND date2 -- graph boundaries
ORDER BY c.date ASC
यदि आपकी टाइमलाइन में छेद हैं तो इसका परिणाम औसत के लिए 5 से कम मान होगा।