我有一个表,其中包含215个vm的数据行。每行包含以下信息:vm名称、日期戳、磁盘、容量、吞吐量、iops等。
每个虚拟机将有一个或多个磁盘,这意味着对于每个日期戳,每个虚拟机每个日期戳可能有多行数据。
我需要的是每个虚拟机的总磁盘容量的结果。我从哪个日期戳获取数据并不重要,因为每个日期戳的数据通常保持不变。然而,并不是所有的虚拟机都存在于每个日期戳中。
这就是我尝试过的。
查询尝试1:
SELECT DISTINCT `VM`, SUM(CapacityGB) as cap FROM stats Group By `VM`
这里的问题是,我得到了每个vm的结果,但不是单个日期戳的容量总和,而是该vm的所有日期戳的总和,这意味着容量太大了
查询尝试2:
SELECT DISTINCT `VM`,`datestamp`, SUM(CapacityGB) as cap FROM stats Group By `VM`,`datestamp`
这个查询提供了适当的容量结果,但是我得到了每个vm的每个日期戳的一行(我有215个vm,它返回394701行,因为我每隔10分钟有大约2周的统计数据)
所以我想要的是一个混合,每个虚拟机1行的结果。有什么建议吗?
1条答案
按热度按时间6kkfgxo01#
您可以将第二个查询 Package 为子查询并选择
MAX
的价值cap
(应与其他任何一个相同),分组方式VM
: