2016-04-18 2 views
0

У меня есть две таблицы в MySQL - tickets и ticket_updatesвыбирая среднее время отклика из двух таблиц базы данных

со следующей структурой:

tickets

  • последовательность
  • ticketnumber
  • DateTime

ticket_updates

  • последовательность
  • ticketnumber
  • DateTime

отношения является: tickets.ticketnumber = ticket_updates.ticketnumber

я хочу, чтобы выяснить, среднее время ответа на определенный день на основе когда строки вставляются в ticket_updates

Я попробовал этот запрос:

SELECT avg(response_seconds) as s FROM 
    (SELECT time_to_sec(timediff(min(u.datetime), u.datetime)) AS response_seconds 
    FROM tickets t JOIN ticket_updates u ON t.ticketnumber = u.ticketnumber 
    WHERE u.type = 'update' and t.customer = 'Y' and DATE(u.datetime) = '2016-04-18' 
    GROUP BY t.ticketnumber) 
    AS r 

, но каждый раз, его возвращение 0.000

ответ

1

Я думаю, что проблема с:

(SELECT time_to_sec(timediff(min(u.datetime), u.datetime)) AS response_seconds 

, который возвращает 0 на моей консоли. Попробуйте с:

(select time_to_sec(timediff(from_unixtime(floor(UNIX_TIMESTAMP(u.datetime)/60)*60), u.datetime))) as response_seconds; 

как

SELECT avg(response_seconds) as s FROM 
    (select time_to_sec(timediff(from_unixtime(floor(UNIX_TIMESTAMP(u.datetime)/60)*60), u.datetime))) as response_seconds 
    FROM tickets t JOIN ticket_updates u ON t.ticketnumber = u.ticketnumber 
    WHERE u.type = 'update' and t.customer = 'Y' and DATE(u.datetime) = '2016-04-18' 
    GROUP BY t.ticketnumber) 
    AS r 
+0

то будет теперь только возвращающиеся 'NULL' – charlie

+0

Да, на моей машине также возвращает NULL, я полностью переписал мой ответ, другое решение –

+0

это работает сейчас? –

Смежные вопросы