У меня есть таблица, которая содержит строки данных для 215 виртуальных машин.Каждая строка содержит следующую информацию: имя виртуальной машины, метка даты, диск, емкость, пропускная способность, iops и т. Д.
каждая виртуальная машина будет иметь один или несколько дисков, что означает, что для каждой метки даты может быть несколько строк данных.для каждого vm на дату.
![raw stats table](https://i.stack.imgur.com/KyGq4.png)
Мне нужны результаты с общей емкостью диска на виртуальную машину.Неважно, из какой даты я получаю данные, поскольку она обычно остается одинаковой для каждой даты.Однако не все виртуальные машины существуют во время каждой отметки даты.
Итак, вот что я попробовал.
Попытка запроса 1:
SELECT DISTINCT `VM`, SUM(CapacityGB) as cap FROM stats Group By `VM`
Проблема здесь в том, что я получаю результатыдля каждой виртуальной машины, но вместо суммы емкости для одной метки даты, она суммирует ВСЕ метки даты для этой виртуальной машины, что означает, что емкость является ПУТЬ высокой
![results with wrong capacity](https://i.stack.imgur.com/DsFTY.png)
попытка запроса 2:
SELECT DISTINCT `VM`,`datestamp`, SUM(CapacityGB) as cap FROM stats Group By `VM`,`datestamp`
этот запрос дает мне правильные результаты по емкости, но я получаю строку для каждой метки даты для каждой виртуальной машины (у меня 215 vms, и он возвращает 394701 строк, потому что у меня есть статистика за 2 недели10-минутные интервалы)
![too many rows per vm in these results](https://i.stack.imgur.com/fvFax.png)
Так что мне бы хотелось, чтобы это был гибрид, 1 ряд результатов на ВМ.какие-нибудь указатели?