Это мой запрос - и я хочу, чтобы значение B было положительным, а запрос - отрицательным. Так что я могу сложить их в группу по hole_depth
SELECT
class,
start_time,
end_time,
SUM(TIME_TO_SEC(TIMEDIFF(end_time, start_time))) AS time_diff,
hole_depth
FROM
(SELECT "A" AS class, TIME("2020-10-01 01:00:00") AS start_time, TIME("2020-10-01 02:00:00") AS end_time, 1000 AS hole_depth
UNION
SELECT "B" AS class, TIME("2020-10-01 02:00:00") AS start_time, TIME("2020-10-01 08:00:00") AS end_time, 1000 AS hole_depth
UNION
SELECT "A" AS class, TIME("2020-10-01 10:00:00") AS start_time, TIME("2020-10-01 15:00:00") AS end_time, 2000 AS hole_depth
UNION
SELECT "B" AS class, TIME("2020-10-01 16:00:00") AS start_time, TIME("2020-10-01 20:00:00") AS end_time, 2000 AS hole_depth
UNION
SELECT "B" AS class, TIME("2020-10-01 20:00:00") AS start_time, TIME("2020-10-01 23:00:00") AS end_time, 2000 AS hole_depth
UNION
SELECT "C" AS class, TIME("2020-10-02 01:00:00") AS start_time, TIME("2020-10-02 3:00:00") AS end_time, 2000 AS hole_depth
UNION
SELECT "C" AS class, TIME("2020-10-02 03:00:00") AS start_time, TIME("2020-10-02 4:00:00") AS end_time, 2000 AS hole_depth
UNION
SELECT "A" AS class, TIME("2020-10-02 04:00:00") AS start_time, TIME("2020-10-02 07:00:00") AS end_time, 2000 AS hole_depth
) t
GROUP BY hole_depth, class
Результат
Ожидаемый результат
Все значения B должны возвращать отрицательное значение. т.е. -21600, -25200