Имам таблица, която има колона START_DATE и END_DATE.
Искам да извлека средната времева разлика между тези времеви клейма за всеки час, но само между часовете от 9:00 до 18:00, през последните няколко дни. Бих искал изходът да изглежда така:
elapsed hour
-------------
2.5 11 <--today at 11AM
1.7 10
2.4 9
1.9 18 <--this is yesterday
2.4 17
4.0 16
Вярвам, че съм доста близо, но просто не мога да накарам кода да работи. Ето какво имам:
SELECT
TRUNCATE(AVG(TIME_TO_SEC(TIMEDIFF(END_DATE, START_DATE))/60), 2) as elapsed,
EXTRACT(HOUR FROM END_DATE) as hour
FROM
TIME_INFO
WHERE
EXTRACT(HOUR FROM END_DATE) BETWEEN 9 AND 18 AND
DATE(END_DATE) > CURDATE() - INTERVAL 3 DAY
GROUP BY
EXTRACT(HOUR FROM END_DATE)
ORDER BY
END_DATE DESC
Близо е, но връща само това, което искам от преди три дни, вместо през дните, както бих искал. Използвам mySQL 5.0, някой има ли идеи?