Есть таблица, поле первичный ключ типа datetime, остальные поля не важны. В таблице ок. 5 млн записей. Обычно записи следуют одна за другой с интервалом 1 минута, как-то так:
Spoiler
SELECT * FROM (имя таблицы) WHERE `TIME` BETWEEN '2017-07-21 08:58' AND '2017-07-21 10:57' ORDER BY `TIME` ASC;
Нужно найти в этой таблице "провалы во времени", т.е. места, гда промежуток времени между соседними записями больше заданной величины.
Все, что сам я смог придумать, так это создать временную таблицу с полем id AUTO_INCREMENTи полем datetime, скопировать в нее, а затем сделать запрос из нее со джоином на себя же, по условию t1.id+1 = t2.id
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
rgl
MySQL
Есть таблица, поле первичный ключ типа datetime, остальные поля не важны. В таблице ок. 5 млн записей. Обычно записи следуют одна за другой с интервалом 1 минута, как-то так:
SELECT * FROM (имя таблицы) WHERE `TIME` BETWEEN '2017-07-21 08:58' AND '2017-07-21 10:57' ORDER BY `TIME` ASC;
результат:
Array (
Array ( [TIME] => 2017-07-21 08:58:00 [SHORT] => 0.00000000641 [LONG] => 0.0000000665 [SOURCE] => 15 )
Array ( [TIME] => 2017-07-21 08:59:00 [SHORT] => 0.00000000583 [LONG] => 0.0000000664 [SOURCE] => 15 )
Array ( [TIME] => 2017-07-21 09:00:00 [SHORT] => 0.00000000435 [LONG] => 0.0000000666 [SOURCE] => 15 )
Array ( [TIME] => 2017-07-21 09:01:00 [SHORT] => 0.00000000518 [LONG] => 0.0000000698 [SOURCE] => 15 )
Array ( [TIME] => 2017-07-21 09:02:00 [SHORT] => 0.0000000056 [LONG] => 0.0000000679 [SOURCE] => 15 )
и т.д.
Нужно найти в этой таблице "провалы во времени", т.е. места, гда промежуток времени между соседними записями больше заданной величины.
Все, что сам я смог придумать, так это создать временную таблицу с полем id AUTO_INCREMENTи полем datetime, скопировать в нее, а затем сделать запрос из нее со джоином на себя же, по условию t1.id+1 = t2.id
А можно ли без создания временной таблицы?
Link to comment
Share on other sites
15 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.