Эта концепция должна работать (хотя я не проверял эти запросы):
SELECT t1, sum(co), sum(co_ro)
FROM
(
(
SELECT p1.time AS t1, SUM(p1.kpi_0) AS co, 0 AS co_ro
FROM hourly_history p1
WHERE p1.type_id=3
GROUP BY p1.time
)
UNION ALL
(
SELECT p2.time AS t1, 0 AS co, SUM(p2.kpi_0) AS co_ro
FROM hourly_history p2
WHERE p2.type_id=5
GROUP BY p2.time
)
)
GROUP BY t1;
Это должно быть еще проще:
SELECT t1, sum(co), sum(co_ro)
FROM
(
(
SELECT p1.time AS t1, p1.kpi_0 AS co, 0 AS co_ro
FROM hourly_history p1
WHERE p1.type_id=3
)
UNION ALL
(
SELECT p2.time AS t1, 0 AS co, p2.kpi_0 AS co_ro
FROM hourly_history p2
WHERE p2.type_id=5
)
)
GROUP BY t1;