【发布时间】:2018-10-03 01:36:37
【问题描述】:
我有一个表,其中包含 215 个虚拟机的数据行。每行有以下信息VM名称、日期戳、磁盘、容量、吞吐量、iops等。
每个虚拟机将有一个或多个磁盘,这意味着对于每个日期戳,每个虚拟机的每个日期戳可能有不止一行数据。
我需要的是每个 VM 的总磁盘容量的结果。我从哪个日期戳中获取数据并不重要,因为每个日期戳通常保持相同。然而,并不是所有的虚拟机都存在于每个日期戳中。
这就是我尝试过的。
查询尝试 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`
此查询为我提供了正确的容量结果,但我得到了每个 VM 的每个日期戳的一行(我有 215 个 vm,它返回 394701 行,因为我每隔 10 分钟就有大约 2 周的统计数据)
所以我想要的是混合的,每个 VM 有 1 行结果。有什么指点吗?
【问题讨论】: