2014-12-02 2 views
0

Im пытается определить разницу дат между 2 полями, отформатированными как дата-время.MySQL AVG DATEDIF GROUP BY (IF datetime IS NULL THEN = NOW())

После DateDiff каждой строки было обнаружено, позанимайтесь в среднем от GROUP BY отдела

Это текущий запрос, но он не принимает во внимание, где dateClosed IS NULL (см рисунок)

SELECT ROUND(AVG(DATEDIFF(dateClosed , dateAded) * 1.0), 0) avg 
    , department 
    FROM tickets 
GROUP 
    BY department; 

.

dateAded    dateClosed   dateActivity 
2014-07-28 11:43:16 0000-00-00 00:00:00 2014-08-06 10:31:44 

Поэтому мне нужно включить в запрос:

IF dateClosed IS NULL THEN = NOW()

Но им не знаете, как это сделать, я попытался следующие, но это не работает:

SELECT 
round(AVG(DATEDIFF(
CASE WHEN dateClosed IS NULL 
THEN SET dateClosed = NOW() 
END 
, dateAded) * 1.0), 0) AS avg, department FROM tickets group by department 

ответ

0
SELECT round(avg(DATEDIFF(IF(dateClosed = '0000-00-00 00:00:00', NOW(), dateClosed) , dateAded) * 1.0), 2) AS avg, department 
FROM tickets 
group by department