Dies ist mein Tabellenlayout für VMs in unserem DC. Jede Stunde sammeln wir Metriken, wollen aber verhindern, dass eine Umfrage zweimal durchgeführt wird und dann für eine bestimmte Stunde mit doppelter Information endet.Wählen Sie eindeutige/eindeutige Einträge im Zeitfenster
Unten ist mein Tisch
VM_Name NUM_VCPU POWER_STATE MEMORY_MB IMPORTEDTIMESTAMP
-------------------------------------------------------------------------
FERNANDO TEST 2012 4 1 16384 2017-01-10 10:13:42.353
FERNANDO TEST 2012 R2 4 0 8192 2017-01-10 10:13:42.353
Bevor die Abfrage ich die oben genannten Informationen
SELECT Count([VM_NAME]) as Num_VM
,sum([NUM_VCPU]) as SUM_NUM_VCPU
,SUM([MEMORY_MB]) as SUM_MEM_MB
,SUM([MEMORY_MB])/1024 as SUM_MEM_GB
,dateadd(hour, datediff(hour, 0, IMPORTEDTIMESTAMP), 0) as IMPORTEDTIMESTAMPROUND
FROM VM_DATA
Where POWER_STATE = 1
group by dateadd(hour, datediff(hour, 0, IMPORTEDTIMESTAMP), 0)
zu bekommen verwenden Und ich bekomme
Num_VM SUM_NUM_VCPU SUM_MEM_MB SUM_MEM_GB IMPORTEDTIMESTAMPROUND
---------------------------------------------------------------------------
2 |4 |24576 |24 |2017-01-10 16:00:00.000
1 |2 |12288 |12 |2017-01-11 02:00:00.000
1 |2 |12288 |12 |2017-01-11 03:00:00.000
Wie Sie bei 04.00 sehen (2017-01-10 16: 00: 00.000) es gab eine Test-Doppel-Umfrage, und jetzt habe ich die doppelte Metrik an Ort und Stelle. Wie kann ich meine Abfrage anpassen, um bestimmte Werte zu erhalten? Ich denke, ich muss eine Unterabfrage durchführen, bin mir aber nicht sicher, wo.
Edit für weitere Klarstellung.
Also am 2017-01-10 16: 00: 00.000 Ich habe zweimal abgefragt, jetzt habe ich doppelte Datensätze drin. Ich brauche verschiedene vm_name und deutliche timesstmap Wählen Sie die Duplikate zu entfernen, und dann alle vms zählen, resümieren die CPU und Speicher und gruppieren sie durch die timesatmp
Ich bearbeitet mein OP, um etwas Klärung hinzuzufügen. AVG funktioniert nicht, weil ich für eine bestimmte Stunde die Summe von CPU und Arbeitsspeicher, Anzahl der VMs benötige. –