Можно ли выбрать только те записи, где прошел интервал?
Например, в select with group by для такой таблицы:
TABLE (timestamp(timestamp), name(VARCHAR))
timestamp name
------------------- ----
2010-11-16 10:30:01 John
2010-11-16 10:30:02 John
2010-11-16 10:30:03 John
2010-11-16 10:30:31 John
2010-11-16 10:30:32 John
2010-11-16 10:30:33 John
Запрос:
SELECT max(timestamp), name, count(name)
FROM table
GROUP BY UNIX_TIMESTAMP(timestamp) DIV 30, name
Результат:
timestamp name count(name)
------------------- ---- -----------
2010-11-16 10:30:03 John 3
2010-11-16 10:30:33 John 3
Это будет группировать по записям из:
hour:minute:00 to hour:minute:29
и из:
hour:minute:30 to hour:minute:59
Если я сделаю запрос на 10:30:55
, я хочу получить только записи за предыдущий интервал 10:30:00
до 10:30:29
(и старше) без записей, добавленных между 10:30:30
до 10:30:59
.
Другими словами, если я сделаю запрос в течение некоторого интервала, подождите, пока он пройдет, прежде чем показывать записи.
Обратите внимание, что запрос может выполняться не всегда в одну и ту же секунду (10:30:55
), это может быть 10:30:51
или что-то еще.
Таким образом, результат с предложением должен быть:
timestamp name count(name)
------------------- ---- -----------
2010-11-16 10:30:03 John 3
Если оно сделано, например, в 2010-11-16 10:30:55
.