Как создать запрос MySQL для временных элементов с «безопасным окном»? - PullRequest
1 голос
/ 15 июня 2010

Я не эксперт по SQL, это далеко не так.Я пишу приложение на Rails, и я тоже новичок в этом.Я пришел из среды настольного программирования.

В моем приложении есть таблица данных, в одном из столбцов указано время, когда данные были зарегистрированы.Я хочу создать запрос с «безопасным окном» вокруг КАЖДОЙ строки.Под этим я подразумеваю, что он возвращает первую строку, затем в течение X минут (на основе столбца с временными метками) он не будет возвращать никаких данных, после истечения X минут он вернет следующую строку.

Дляпример:

ID | TimeLogged
1  | 3/5/2010 12:01:01
2  | 3/5/2010 12:01:50
3  | 3/5/2010 12:02:03
4  | 3/5/2010 12:10:30
5  | 3/5/2010 01:30:03
6  | 3/5/2010 01:31:05

При «безопасном окне» в 5 минут я хочу создать запрос для возврата:

1  | 3/5/2010 12:01:01
4  | 3/5/2010 12:10:30
5  | 3/5/2010 01:30:03

(он пропустил 12:01:50 и 12:02:03 элементов, потому что они возникли в течение 5 минут после первого элемента.)

Другой пример, с «безопасным окном» в 15 минут, я хочу вернуть:

1  | 3/5/2010 12:01:01
5  | 3/5/2010 01:30:03

Возможнонужно просто вернуть все данные и разобрать их самому?

1 Ответ

0 голосов
/ 15 июня 2010

Можно использовать GROUP BY для столбца, который был визуализирован в пятнадцатиминутные срезы, но это не дает точного контроля, который вам требуется для этого экземпляра. Лучшее, на что вы можете надеяться, - это сортировать по пятнадцати минутам по отдельности, но это не гарантирует пятнадцатиминутного промежутка времени. Фактически, они с большей вероятностью будут ближе друг к другу, поскольку 11:59:59 и 12:00:01 будут считаться двумя разными интервалами.

По сути, вы застряли, используя более ручной метод, поскольку я не знаю ни одной операции MySQL, которая будет делать то, что вы хотите.

Если вам нужно выполнить эту операцию более одного раза, возможно, вы захотите пометить определенные записи в базе данных после того, как вы выяснили, какое у вас назначенное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...