|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.01.2018, 20:16 | #1 |
Форумчанин
Регистрация: 26.02.2011
Сообщений: 301
|
Запросы. часть третья.
Итак, предыдущие две задачи помогли решить успешно, может еще и третью реально будет решить?
Есть ип, и время его обращения в utc формате(число вообщем). Формат ip - время 188.165.2.51 - 1474154412 178.161.0.21 - 1474154417 И так далее... Возможно ли отловить запросом ситуацию, когда время идет, скажем три раза подряд одно и то же, то есть сделанные буквально в одну секунду? 188.165.2.51 - 1474154418 188.165.2.51 - 1474154419 188.165.2.51 - 1474154419 188.165.2.51 - 1474154419 188.165.2.51 - 1474154422 Поможет ли мощь субд это сделать sql запросом? если да то как это можно сделать?Подсветил какие последовательности надо найти. В данный момент это в пхп скрипте счетчики все считают, это долго, если бы удалось реализовать запросом,например"вывести все ip адреса где время идет три раза подряд одинаковое" было бы хорошо. Есть идеи как это можно реализовать? |
18.01.2018, 20:24 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
что такое подряд? А вообще-то group by по ip и времени, и count, который больше 2, having можно использовать. Но это совсем не подряд
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 18.01.2018 в 20:26. |
18.01.2018, 20:55 | #3 |
Форумчанин
Регистрация: 26.02.2011
Сообщений: 301
|
Я же выделил что такое подряд одинаковое время)) Можете показать это "group by по ip и времени, и count, который больше 2, having можно использовать" на примере запроса?
В данный момент стоит группировка по ip, дабы уник выловить это запросом SELECT ip FROM logs_data GROUP BY ip делается, а дальше скриптом по каждому уник ip делается запрос SELECT время FROM таблица where ip = равен такому то. И по возвращенному массиму значений времени ищется счетчиком подряд одинаково идущие значения времени, и если одинаковая последовательность встречается то ставится в столбце другом отметка что есть такое. Но это долго, по каждому айпи куча запросом опять - время много уходит. Вот я и хотел узнать, можно ли чисто средствами sql это решить? Последний раз редактировалось a.n.o.n.i.m; 18.01.2018 в 21:00. |
18.01.2018, 21:10 | #4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
А запрос примерно так Код:
если нужно точно 3 поставь =3
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
18.01.2018, 21:23 | #5 |
Форумчанин
Регистрация: 26.02.2011
Сообщений: 301
|
prnt.sc/i2azry скрин сделал, может поможет.
Если ваш запрос применить вот так выдает prnt.sc/i2b1az Это не то что нужно) |
18.01.2018, 21:30 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Не то, так не то. Моя не понимает, что твоя нужно))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
18.01.2018, 21:32 | #7 |
Форумчанин
Регистрация: 26.02.2011
Сообщений: 301
|
А должно быть примерно так prnt.sc/i2b5s4
Тоесть уник ип, и во втором столбце ответка, что встечалась время подряд три раза одинаковое для данного ip |
18.01.2018, 21:37 | #8 |
Форумчанин
Регистрация: 26.02.2011
Сообщений: 301
|
Смотри.
1 - Получить список уник айпи примерно так SELECT ip FROM logs_data GROUP BY ip 2 - Для каждого айпи получить массив с его временами, примерно так SELECT время FROM таблица where ip = равен такому то Тоесть тут будет примерно так: ip188.165.2.51 1474154418 1474154419 1474154419 1474154419 1474154422 Взяли следующий ип, и так же все его времена нашли, и опять, и так все уникальные. 3 - Проглядываю каждый раз данную последовательность мы ищем подпоследовательность из трех одинаковых времен подряд идущих с данного айпи, если такое есть, ставим отметку, что хотя бы раз, в списке времен данного айпи была такая подпоследовательность. У меня просто 2 ставится у таких айпи, на скрине указанном выше |
18.01.2018, 21:41 | #9 |
Форумчанин
Регистрация: 26.02.2011
Сообщений: 301
|
Вот еще скрин такой, на общем списке prnt.sc/i2bal0 , выделил где для каких ip данное условие выполняется. Но это делает sql + php скрипт. Хотелось бы чисто на sql все сделать.
|
18.01.2018, 21:45 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Опять же, если правильно понял. Обверни его другим запросом
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Третья мировая война | rpy3uH | Свободное общение | 82 | 28.09.2013 07:20 |
Стивен Прата. Третья Глава | Pirandello_Kruger | Общие вопросы C/C++ | 0 | 07.03.2012 22:50 |
Третья нормальная форма. | lovetolaugh | БД в Delphi | 1 | 16.06.2011 03:59 |
обновление в блоге - Хуки в Windows. Часть третья. Оконные функции | Pblog | Обсуждение статей | 1 | 04.01.2010 13:20 |