У меня есть таблица, которая содержит строки данных для 215 виртуальных машин.Каждая строка содержит следующую информацию: имя виртуальной машины, метка даты, диск, емкость, пропускная способность, 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`
этот запрос дает мне правильные результаты по емкости, но я получаю строку для каждой метки даты для каждой виртуальной машины (у меня 215 vms, и он возвращает 394701 строк, потому что у меня есть статистика за 2 недели10-минутные интервалы)
Так что мне бы хотелось, чтобы это был гибрид, 1 ряд результатов на ВМ.какие-нибудь указатели?