2015-03-05 2 views
0

Я пытаюсь получить среднее значение задержки для каждого элемента, который хранится в двух отдельных таблицах mysql. Позвольте мне еще уточнить, что у меня есть две MySQL таблицы, как показано ниже,Как вставить среднее значение запроса в таблицу mysql

стол: monitor_servers

+-----------+-----------------+ 
| server_id | label   | 
+-----------+-----------------+ 
|   1 | a.com   | 
|   2 | b.com   | 
+-----------+-----------------+ 

стол: monitor_servers_uptime

+-------------------+-----------+-----------+ 
| servers_uptime_id | server_id | latency | 
+-------------------+-----------+-----------+ 
|     1 |   1 | 0.4132809 | 
|     3 |   1 | 0.4157769 | 
|     6 |   1 | 0.4194210 | 
|     9 |   1 | 0.4140880 | 
|    12 |   2 | 0.4779439 | 
|    15 |   2 | 0.4751789 | 
|    18 |   2 | 0.4762829 | 
|    22 |   2 | 0.4706681 | 
+-------------------+-----------+-----------+ 

В принципе, каждый из доменов, связанных с тем же ID_NUMBER в обеих таблицах. Пока я выполняю запрос ниже, получая среднее значение по каждому элементу.

select monitor_servers.label, avg(monitor_servers_uptime.latency) 
from monitor_servers,monitor_servers_uptime 
where monitor_servers.server_id = monitor_servers_uptime.server_id 
group by monitor_servers.server_id; 

Запрос в конечном итоге,

+---------------------+-------------------------------------+ 
| label    | avg(monitor_servers_uptime.latency) | 
+---------------------+-------------------------------------+ 
| a.com    |      0.41393792995 | 
| b.com    |      0.47551423171 | 
+---------------------+-------------------------------------+ 

Мои вопросы делают я в Райт образом, получая среднее значение каждого из элементов и как я могу вставить новый средний результат каждого элементов в новый столбец на столе monitor_servers? А также, что произойдет, если некоторые из латентных строк NULL?

** Edit: Что я пытаюсь достичь в один результат запроса является **

+-----------+----------+------------------+ 
| server_id | label | avg.   | 
+-----------+----------+------------------+ 
|   1 | a.com | 0.41393792995 | 
|   2 | b.com | 0.47551423171 | 
+-----------+-----------------------------+ 

Спасибо заранее,

+0

Почему вы хотите записать данные в другую таблицу? Разве это не было бы лишним? – MegaAppBear

+0

Я хочу сохранить последнее среднее значение каждого элемента в дополнительное поле, например, новый столбец с именем 'avg' – linuxmansf

ответ

0
  1. Ваш расчет кажется правильным.

  2. Вы можете добавить еще один столбец в monitor_servers с помощью SQL:

ALTER TABLE monitor_servers ADD avg_latency DEFAULT 0.0 NOT NULL

Для делать чек расчета AVG this ответ.

Смежные вопросы