Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Группирование, По времени 
V
    Опции темы
skifoz
Дата 14.8.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 23.1.2006
Где: Россия

Репутация: нет
Всего: 1



Вообщем проблема такая.
У меня есть таблица с полями

ip|utime|action

где 
ip - это ип адрес
utime - время по UNIX
action - какое либо действие от ip

Мне нужно сгрупировать это все по отрезкам времени, например 
какой то ip сделал 10 действий в одно время, потом через минут 15 сделал еще 5 действий. Это все записалось в базу. 

И теперь мне нужно вывести все  ip но только сгруппированным по времени . (ip адресов может быть много)
то есть если просто сгрупировать по ip он в COUNT запишет все записи
а мне нужно чтобы в каждом ip(даже если ip одинаковые) были записи в промежутке времени 15 минут.

то есть чтобы выводило 
  время - IP - 10
  время - IP - 5
а не
  время - IP - 15

Кто-нибуть знает как можно так сгуппировать??
PM MAIL WWW   Вверх
Akina
Дата 14.8.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Например ввести вспомогательную таблицу требуемых интервалов группировки.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skyboy
Дата 14.8.2006, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Не совсем понял, что требуется. Приведи пример пошире. Пока что могу только сказать, что ты можешь группировать не только по полям, но и по выражениям. Например, 
Код

... GROUP BY date(FROM_UNIXTIME(utime)),hour(FROM_UNIXTIME(utime)),minute(FROM_UNIXTIME(utime)) div 15

Даст тебе разбивку по интервалам в 15 минут. 
Всё же обьясни на примере. Только так, чтоб несколько разных ИП, несколько разных дат, с разными минутами было...
PM MAIL   Вверх
skifoz
Дата 14.8.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 23.1.2006
Где: Россия

Репутация: нет
Всего: 1



Привожу пример

смотри есть таблица 
ip|utime|action

1.1.1.1|10000|2
1.1.1.1|10000|1
1.1.1.1|10000|5
1.1.1.1|10000|6
1.1.1.2|10000|9
1.1.1.2|10000|1
1.1.1.1|20000|6
1.1.1.1|20000|5
1.1.1.2|20000|9
1.1.1.2|20000|1
1.1.1.2|20000|1

Нам например нужно чтобы вывело с интервалом в 10000 сек

то есть чтобы было
1.1.1.1 - 4
1.1.1.2 - 2
1.1.1.1 - 2
1.1.1.2 - 3

если групировать по ип выводит 
1.1.1.1 - 6
1.1.1.2 - 5

а мне надо как выше



Это сообщение отредактировал(а) skifoz - 14.8.2006, 14:41
PM MAIL WWW   Вверх
skyboy
Дата 14.8.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Код

SELECT ip,count(*) 
FROM table 
GROUP BY ip,utime div 10000
ORDER BY utime div 10000,ip

Надеюсь, я правильно тебя понял smile
PM MAIL   Вверх
Ignat
Дата 14.8.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Что-то мне сдаётся, что здесь нужен банальный

Код

GROUP BY utime, ip



--------------------
Теперь при чем :P
PM   Вверх
skyboy
Дата 14.8.2006, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Ignat, не совсем. Если нужна группировка по интервалам в 10000 секунд, GROUP BY utime, ip выдаст новую строку для каждой секунды, а не для нового 10000-секундного интервала ;) Ты же не предлагаешь собирать статистику по секундам? smile
PM MAIL   Вверх
Ignat
Дата 14.8.2006, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(skyboy @  14.8.2006,  16:55 Найти цитируемый пост)
Ты же не предлагаешь собирать статистику по секундам?

Нет, конечно smile

Но судя по представленным данным - таких там и нет. Хотя фиг его знает.


--------------------
Теперь при чем :P
PM   Вверх
skifoz
Дата 14.8.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 23.1.2006
Где: Россия

Репутация: нет
Всего: 1



Цитата(Ignat)

Но судя по представленным данным - таких там и нет. Хотя фиг его знает.

Переданные данные я наугад писал) на самом деле там будут данные в формате unixtime  то есть дофига значений, и еще если даже сделать как ты сказал то все равно так бы не прокатило, так как мне надо еще чтобы была групировка по ip, но все равно спасибо за участие в решении вопроса)

Цитата(skyboy @  14.8.2006,  15:59 Найти цитируемый пост)
Надеюсь, я правильно тебя понял smile

Да!! Баальшое тебе спасибо) я просто в mysql не сильно парю, не знал что там есть DIV =)
PM MAIL WWW   Вверх
Ignat
Дата 14.8.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(skifoz @  14.8.2006,  18:17 Найти цитируемый пост)
так как мне надо еще чтобы была групировка по ip

Гм.. А я вроде ip не пропускал ;)


--------------------
Теперь при чем :P
PM   Вверх
skifoz
Дата 14.8.2006, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 23.1.2006
Где: Россия

Репутация: нет
Всего: 1



Цитата

Гм.. А я вроде ip не пропускал ;)


А да, сорри не заметил))
PM MAIL WWW   Вверх
skyboy
Дата 14.8.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



skifoz, вместо DIV можно было бы использовать floor/round... Тормознутее, наверное, но ведь описание функций есть в каждом файле справки smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.