Mysql Group значения конкататов и вычитаний

Я попытался вычислить разницу в значениях, полученных из запроса mysql, где значения данных извлекаются во время кругов соревнования в формате TIME. цель состоит в том, чтобы получить время круга между прибытием для каждого круга. Это стол Times,

id            number            time
---------+----------------+--------------------
1               9               00:00:02.000000
2               10              00:00:14.000000
3               9               00:11:09.000000

Mysql

SELECT
t.number, count(*) as laps,
group_concat(time order by t.id separator ',' ) as times,
SEC_TO_TIME(SUM(TIME_TO_SEC(`time`))) as total
FROM
times t
GROUP BY
number
ORDER BY
laps DESC, total ASC

Результат этого запроса:

number        laps          times                     total
--------------------------------------------------------------
9              2           00:00:02,00:00:14         00:00:16.000000
10             1           00:11:09                  00:11:09.000000

Теперь, что мне нужно, это узнать продолжительность времени на каждом круге с вычитаниями.
Любое предложение, пожалуйста. Благодаря этому результату:

number        laps          times                     total
--------------------------------------------------------------
9              2           00:00:02,00:00:12         00:00:14.000000
10             1           00:11:09                  00:11:09.000000

-1

Решение

Кажется, вы сохранили общее время и хотите рассчитать время круга. Один из способов сделать это — использовать подзапрос;

SELECT t.number, COUNT(1) laps,
GROUP_CONCAT(SEC_TO_TIME(time) ORDER BY t.id) times,
SEC_TO_TIME(SUM(time)) total
FROM (
SELECT t1.id, t1.number,
TIME_TO_SEC(t1.time) - COALESCE(SUM(TIME_TO_SEC(t2.time)), 0) time
FROM times t1
LEFT JOIN times t2 ON t1.number = t2.number AND t2.id < t1.id
GROUP BY t1.id, t1.number, t1.time
) t
GROUP BY number

Подзапрос вычисляет время круга, вычитая все времена для одного и того же числа с меньшим идентификатором из общего времени окончания каждого круга. Внешний запрос выполняет форматирование времени круга в том формате, который вы ищете.

SQLfiddle для тестирования.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]