如何将查询的平均值插入mysql表
我试图得到两个单独的mysql表中每个项目的平均延迟。让我进一步澄清一下,我有两个mysql表,如下所示 表:监控服务器如何将查询的平均值插入mysql表,mysql,Mysql,我试图得到两个单独的mysql表中每个项目的平均延迟。让我进一步澄清一下,我有两个mysql表,如下所示 表:监控服务器 +-----------+-----------------+ | server_id | label | +-----------+-----------------+ | 1 | a.com | | 2 | b.com | +-----------+----------------
+-----------+-----------------+
| server_id | label |
+-----------+-----------------+
| 1 | a.com |
| 2 | b.com |
+-----------+-----------------+
表:监视服务器的正常运行时间
+-------------------+-----------+-----------+
| 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_编号关联的每个域。当我运行下面的查询时,得到每个项目的平均值
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 |
+---------------------+-------------------------------------+
我的问题是,在获取每个项目的平均值时,我是否以wright的方式,以及如何将每个项目的新平均值结果插入到表monitor_服务器上的新列中?如果某些延迟行为空,又会发生什么呢
**编辑:我试图在一个查询结果中实现的是**
+-----------+----------+------------------+
| server_id | label | avg. |
+-----------+----------+------------------+
| 1 | a.com | 0.41393792995 |
| 2 | b.com | 0.47551423171 |
+-----------+-----------------------------+
提前感谢,
你的计算似乎是正确的
您可以使用sql向monitor_服务器添加另一列:
ALTER TABLE monitor_服务器添加平均延迟默认值0.0不为空
用于执行平均值计算检查答案。为什么要将数据写入另一个表?这不是多余的吗?我想将每个项目的最新平均值保存到额外的字段中,例如名为“avg”的新列