MySQL: Получить среднее число разницы во времени?

У меня есть таблица под названием Сессии с двумя столбцами даты и времени: запустите и закончитесь.

В течение каждого дня (YYYY-MM-DD) там могут быть многие различный запуск и время окончания (HH:ii:ss). Я должен найти, что ежедневное среднее число всех различий между ними запускается и время окончания.

Пример нескольких строк был бы:

start: 2010-04-10 12:30:00 end: 2010-04-10 12:30:50
start: 2010-04-10 13:20:00 end: 2010-04-10 13:21:00
start: 2010-04-10 14:10:00 end: 2010-04-10 14:15:00
start: 2010-04-10 15:45:00 end: 2010-04-10 15:45:05
start: 2010-05-10 09:12:00 end: 2010-05-10 09:13:12
...

Разница во времени (в секундах) на 10.04.2010 была бы:

50
60
300
5

Среднее число на 10.04.2010 составило бы 103,75 секунды. Я хотел бы, чтобы мой запрос возвратил что-то как:

day: 2010-04-10 ave: 103.75
day: 2010-05-10 ave: 72
...

Я мог сгруппировать разницу во времени датой начала, но я не уверен, как получить среднее число. Я пытался использовать функцию AVG, но я думаю, что она только работает непосредственно над значениями столбцов (а не результат другой агрегатной функции).

Это - то, что я имею:

SELECT
    TIME_TO_SEC(TIMEDIFF(end,start)) AS timediff
FROM
    Sessions
GROUP BY
    DATE(start)

Существует ли способ получить среднее число timediff для каждой группы даты начала? Я плохо знаком с агрегатными функциями поэтому, возможно, я неправильно понимаю что-то. Если Вы знаете об альтернативном решении, совместно используйте.

Я мог всегда делать это для данного случая и вычислять среднее число вручную в PHP, но я задаюсь вопросом, существует ли способ сделать это в MySQL, таким образом, я могу постараться не выполнять набор циклов.

Спасибо.

12
задан nebs 27 April 2010 в 14:50
поделиться