TIME ZONE 'UTC' AS param_to_data_point_timestamp, %s AS param_critical_user_journey_name ), durations AS ( SELECT INTERVAL '30 minutes' AS duration UNION ALL SELECT INTERVAL '1 hour' UNION ALL SELECT INTERVAL '6 hours' UNION ALL SELECT INTERVAL '3 days' UNION ALL SELECT INTERVAL '28 days' ) SELECT SUM(c.total_count_for_availability), SUM(c.bad_count_for_availability), SUM(c.total_count_for_latency), SUM(c.bad_count_for_latency_p50), SUM(c.bad_count_for_latency_p95) FROM counts_table c, params p, durations d WHERE c.critical_user_journey_name = p.param_critical_user_journey_name AND c.data_point_time <= p.param_to_data_point_timestamp AND c.data_point_time > p.param_to_data_point_timestamp - d.duration GROUP BY d.duration ORDER BY d.duration