Avg Разница во времени в MySQL - PullRequest
       11

Avg Разница во времени в MySQL

12 голосов
/ 05 августа 2009

Есть ли функция для определения средней разницы во времени в стандартном формате времени в моем sql.

Ответы [ 3 ]

20 голосов
/ 05 августа 2009

Вы можете использовать timestampdiff, чтобы найти разницу между двумя значениями.

Я не уверен, что вы подразумеваете под "средним", хотя. Средний по таблице? Среднее по ряду?

Если это таблица или подмножество строк:

select
    avg(timestampdiff(SECOND, startTimestamp, endTimestamp)) as avgdiff
from
    table

Функция avg работает как любая другая агрегатная функция и будет реагировать на group by. Например:

select
    col1,
    avg(timestampdiff(SECOND, startTimestamp, endTimestamp)) as avgdiff
from
    table
group by col1

Это даст вам среднюю разницу для каждого отдельного значения col1.

Надеюсь, это направит вас в правильном направлении!

7 голосов
/ 20 февраля 2012

Что мне нравится делать, так это

SELECT count(*), AVG(TIME_TO_SEC(TIMEDIFF(end,start)))
FROM
  table

Также дает количество строк ...

5 голосов
/ 22 мая 2018

Чтобы получить действительные средние значения в стандартном формате времени из mysql, мне пришлось преобразовать среднее значение в секунды, а затем обратно:

SEC_TO_TIME(AVG(TIME_TO_SEC(TIMEDIFF(timeA, timeB))))

Если вы не конвертируете в секунды, вы получите нечетное десятичное представление минут, которое на самом деле не имеет никакого смысла (для меня).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...