Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Сложение данных из mysql
2ая таблица точно такая же, только местами заменины ip и dest_ip
Необходимо сложить данные pakets, bytes по параметрам ip, date
Тоесть есть адрес 192.168.12.1 надо сложить все его пакеты из 2х таблиц, и байты из 2х таблиц и положить в 3ю таблицу по дате, сложить все данные по датам, в один день, не захватив другой день.
Еще вопрос, вообще созданы таблицы правильно или необходимо создавать заранее таблицы со столбцами id (not null AUTO_INCREMENT) PRIMARY KEY(`id`)?
Читал форумы с похожим вопросом там дали понять что без id данные не будут правильно складываься, все будет путаться, но у нас данных тогда получается милиарды ))
это нормально для мускула?
Мелкий
Отправлено: 30 Сентября, 2014 - 08:50:21
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Дата не правильная.
IP было бы лучше писать через inet_aton/inet_ntoa (но я честно не в курсе, как быть с ipv6) в инты.
Типы не указаны, первичный ключ не указан, как отвечать на вопрос?
Для innoDB есть особенность в том, что лучше всего живётся в случае монотонного увеличения первичного ключа. И что все индексы указывают не на данные, а на значение первичного ключа. Потому даже при наличии естественного ключа делать суррогатный сиквенс можно.
----- PostgreSQL DBA
Sail
Отправлено: 30 Сентября, 2014 - 09:03:49
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Мелкий пишет:
SELECT ip, date, packets, bytes FROM table1
UNION ALL
SELECT ip, date, packets, bytes FROM table1
Где-то тут, однако, должна быть `table2`...
Мелкий
Отправлено: 30 Сентября, 2014 - 11:28:17
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Sail, ммм, ну да. Вторую table1 читать как table2 Ну и поля там поменять, если надо. Я не очень понял, чем различаются таблицы.
----- PostgreSQL DBA
k0ma
Отправлено: 30 Сентября, 2014 - 15:50:14
Гость
Покинул форум
Сообщений всего: 82
Дата рег-ции: Март 2013
Помог: 1 раз(а)
И еще раз спасибо!
что бы я делал без Мелкого и форума... читал маны скажите вы и будете правы....
to Мелкий
Я думаю протокол не нужен, нужно только сгрупировать по ip и дате.
ip_from | ip_to | bytes | pakets | date |
table1, table2,table3,table4 и тд.
на счет того как правильно базу создать, да, неумею, и не учился... вроде бы и работает так как есть.
k0ma
Отправлено: 02 Октября, 2014 - 18:22:44
Гость
Покинул форум
Сообщений всего: 82
Дата рег-ции: Март 2013
Помог: 1 раз(а)
To Мелкий
Извини, но я неверно истолковал, то что сам желал получить
Есть 2е таблицы 1 и 2. В них байты повяляються.
Есть таблицы 3 и 4, в них копируютсья данные из таблиц 1 и 2(данные из таблиц удаляются). Каждые 15 минут все копируется в таблицы 3 и 4. КУЧА ХЛАМА!
Далее есть еще таблицы 5 и 6. В конце дня данные из таблицы 3 (bytes) суммируются и кладутся в таблицу 5, а данные из таблицы 4 тоже суммируются (bytes) и кладутся в таблицу 6.
Воот как надо:
Твой пост показывает, как сложить bytes из 2х таблиц в одну, а надо суммировать bytes для каждой таблицы отдельно! Тоесть все байты из таблицы 3 сложить(сумма) и положить в таблицу 5, и тоже самое для таблицы 4, все ее байты сложить и положить в таблицу 6, критерием для сложения являются ip_to(таблица 3) и ip_from (таблица 4)
Таблица 3 и 4 (их колонки одинаковые, но данные отличаются lan->internet, internet->lan)
id ip_from ip_to bytes
Таблицы 5 и 6 (их колонки одинаковые, но данные отличаются lan->internet, internet->lan)
id date ip login ip_from ip_to bytes
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.