我有一个表,其中包含215个VM的数据行。每行具有以下信息VM名称,日期戳,磁盘,容量,吞吐量,iops等。
每个VM将具有一个或多个磁盘,这意味着对于每个日期戳,每个日期戳每个VM可能会有多于一行的数据。
我需要的是每个VM的总磁盘容量的结果。我从哪个日期戳获取数据都没有关系,因为每个日期戳通常保持不变。但是,并非每个日期戳期间都存在所有VM。
这就是我尝试过的。
查询尝试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`
该查询为我提供了适当的容量结果,但是每个虚拟机的每个日期戳都会得到一行(我有215个虚拟机,并且由于每10分钟间隔我有大约2周的统计信息,所以它返回394701行)
所以我想要的是一个混合模式,每个VM 1行结果。有指针吗?
答案 0 :(得分:0)
您可以将第二个查询包装为子查询,然后选择MAX
的{{1}}值(应该与其他任何一个相同),并按cap
分组:
VM