У меня есть таблица со столбцом 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, у кого-нибудь есть идеи?