Самый простой способ сделать это - использовать таблицу календаря. Рассмотрим следующий подход:
SELECT
CONCAT(CAST(cal.ts AS CHAR(50)), '-', CAST(cal.ts + 9 AS CHAR(50))) AS unix_timestamp_range,
CASE WHEN COUNT(t.value) > 0 THEN AVG(t.value) ELSE -1 END AS avg_value
FROM
(
SELECT 1001 AS ts UNION ALL
SELECT 1011 UNION ALL
SELECT 1021 UNION ALL
...
) cal
LEFT JOIN yourTable t
ON t.unix_timestamp BETWEEN cal.ts AND cal.ts + 9
GROUP BY
cal.ts
ORDER BY
cal.ts;
На практике, если вам нужно часто выполнять этот тип запроса, вместо встроенного подзапроса, помеченного как cal
выше, вам может потребоваться полная выделенная таблица. представляет все диапазоны отметок времени.