社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

mysql返回stats表中每个vm的总容量

recklessop • 6 年前 • 1382 次点击  

我有一个表,其中包含215个虚拟机的数据行。每行具有以下信息:虚拟机名称、日期戳、磁盘、容量、吞吐量、IOPS等。

每个虚拟机将有一个或多个磁盘,这意味着对于每个日期戳,每个虚拟机每个日期戳可能有多行数据。

我需要的是每个虚拟机的总磁盘容量的结果。从哪个日期戳获取数据并不重要,因为每个日期戳的数据通常保持不变。但是,并非所有虚拟机在每个日期戳期间都存在。

这就是我所尝试的。

查询尝试1:。

select distinct`vm`,sum(capacitygb)as cap from stats group by`vm`
< /代码> 

这里的问题是,我得到了每个虚拟机的结果,但它不是单个日期戳的容量总和,而是该虚拟机的所有日期戳的总和,这意味着容量是很高的。

查询尝试2:。

select distinct`vm`,`datestamp`,sum(capacitygb)as cap from stats group by`vm`,`datestamp`
< /代码> 

这个查询为我提供了适当的容量结果,但是我为每个虚拟机的每个日期戳都得到一行(我有215个虚拟机,它返回394701行,因为我有大约2周的10分钟间隔的统计数据)。

所以我想要的是一个混合的,每个虚拟机一行结果。有什么指针吗?

每个虚拟机将有一个或多个磁盘,这意味着对于每个日期戳,每个虚拟机的每个日期戳可能有多行数据。

raw stats table

我需要的是每个虚拟机的总磁盘容量的结果。从哪个日期戳获取数据并不重要,因为每个日期戳的数据通常保持不变。但是,并非所有虚拟机在每个日期戳期间都存在。

这就是我所尝试的。

查询尝试1:

SELECT DISTINCT `VM`, SUM(CapacityGB) as cap FROM stats Group By `VM`

这里的问题是,我得到了每个虚拟机的结果,但它不是单个日期戳的容量总和,而是该虚拟机的所有日期戳的总和,这意味着容量是很高的。

results with wrong capacity

查询尝试2:

SELECT DISTINCT `VM`,`datestamp`, SUM(CapacityGB) as cap FROM stats Group By `VM`,`datestamp`

这个查询为我提供了适当的容量结果,但是我为每个虚拟机的每个日期戳都得到一行(我有215个虚拟机,它返回394701行,因为我有大约2周的10分钟间隔的统计数据)

too many rows per vm in these results

所以我想要的是一个混合的,每个虚拟机一行结果。有什么指针吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30475
 
1382 次点击  
文章 [ 1 ]  |  最新文章 6 年前