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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Группировка по подсетям. база mysql 
:(
    Опции темы
Baa
Дата 30.6.2004, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Есть у меня база (логи с фтп)
Формат примерно следующий:
ip bytessent
т.е. два поля 1 - ип адрес, 2 - сколько скачал
А как мне сделать группировку по подсетям? Сие надо для вычисление объема скачанного всей подсетью.
т.е.
10.111.43.181
группируется с
10.111.65.92
соотв.
10.4.0.4
c
10.4.45.86


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Secandr
Дата 30.6.2004, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



если хранить ip в виде 192168001012 вместо 192,168,1,12
то можно будет делать просто:
Код
SELECT (ROUND(ip/1000)-0,4) 'gr' FROM `t` GROUP BY 'gr'

Добавлено @ 16:11
Если в виде 192.168.1.12, то можно попробовать так:
Код
SELECT (left(`id`,locate(`id`,'.'))) 'f',(left(f,locate(f,'.'))) 's', concat(f,'.',s) 'gr' FROM `t` GROUP BY 'gr'

Добавлено @ 16:12
Придумал находу, так что может и не работать. Писал под mysql.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Baa
Дата 30.6.2004, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



А вообще - это мысль.. выделить второй октет и по нему сделать группировку (надо подумать)... Вот только формат хранения менять нельзя.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Secandr
Дата 30.6.2004, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



я второй вариант привёл. Если немного доработать, то он будет вполне дееспособным
Добавлено @ 16:17
Я ещё год назад не знал что вообще бывают базы данных smile.gif


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
<Spawn>
Дата 30.6.2004, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 4
Всего: 64



Baa Какая база?
Для Оракла я бы сделал так:

Код
SELECT Sum(BytesSent)
  FROM Table
 GROUP BY SUBSTR(IP, 1, INSTR(IP, '.', 1, 2) - 1);


Это сообщение отредактировал(а) <Spawn> - 30.6.2004, 16:21


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Secandr
Дата 30.6.2004, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



Судя по заголовку
Цитата
Группировка по подсетям., база mysql
не оракл smile.gif


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
<Spawn>
Дата 30.6.2004, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 4
Всего: 64



Secandr Сори не заметилsmile.gif) А там разве нет функций обработки строк?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Baa
Дата 30.6.2004, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Я сделал так:
SELECT ip, SUM(filesize) FROM transferlog GROUP BY left(ip, locate('.', ip, 4))
Добавлено @ 16:39
Только надо будет хвост немного подровнять, но это мелочи.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Secandr
Дата 30.6.2004, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 6
Всего: 39



Baa
А если IP 1.1.123.123 пройдёт?

Хотя про третий параметр я не дочитал smile.gif


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Baa
Дата 30.6.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Даже вот так:
Код

SELECT concat(left(ip, locate('.', ip, 4)), '0.0') as 'gr', SUM(filesize) FROM transferlog GROUP BY 'gr'



--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Baa
Дата 30.6.2004, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Нет, но у меня таких и не будет ;)


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Baa
Дата 30.6.2004, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Если уж делать универсальную, то так:
Код

SELECT (concat(LEFT(ip, locate('.', ip, locate('.', ip)+1)), '0.0')) as 'gr', SUM(filesize) FROM transferlog GROUP BY gr



--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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