我有一个表,其中包含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分钟间隔的统计数据)。

所以我想要的是一个混合的,每个虚拟机一行结果。有什么指针吗?
每个虚拟机将有一个或多个磁盘,这意味着对于每个日期戳,每个虚拟机的每个日期戳可能有多行数据。

我需要的是每个虚拟机的总磁盘容量的结果。从哪个日期戳获取数据并不重要,因为每个日期戳的数据通常保持不变。但是,并非所有虚拟机在每个日期戳期间都存在。
这就是我所尝试的。
查询尝试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分钟间隔的统计数据)

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