пытался начало интервала и конец интервала вычислить
CREATE TEMPORARY TABLE mysql.t (
t INTEGER,
s INTEGER
);
INSERT INTO mysql.t
SELECT * FROM
(
SELECT 0 AS t, 0 AS s
UNION ALL
SELECT 5, 1
UNION ALL
SELECT 12, 0
UNION ALL
SELECT 15, 1
UNION ALL
SELECT 21, 0
UNION ALL
SELECT 34, 1
UNION ALL
SELECT 45, 0
) t;
SELECT SUM(e - b)
FROM
(SELECT t1.t AS b, MIN(t0.t) AS e
FROM mysql.t AS t1
LEFT JOIN mysql.t AS t0 ON t1.t < t0.t AND t0.s = 0
WHERE t1.s = 1
GROUP BY t1.t) r
но проще конечно это
SELECT SUM(CASE WHEN t.s = 1 THEN -1 * t.t ELSE t.t end) FROM mysql.t