Ich arbeite mit einer MSSQL 2000-Datenbank, die große Mengen von Windows-Perfmon-Daten enthält, die für alle Server in der Umgebung gesammelt wurden. Ich verwende SSRS 2005, um ein benutzerdefiniertes Berichtsdiagramm zu erstellen, um die Messwerte im Zeitverlauf zu visualisieren.Wie kann ich Zeilen zusammenfassen, um die Auflösung von Daten in einer SQL-Abfrage zu reduzieren?
Wenn ich beispielsweise den letzten Monat anzeigen wollte, würde die umfangreiche Anzahl von Datenpunkten einen hässlichen Bericht mit unlesbaren Beschriftungen auf der X-Achse erzeugen. Ich würde gerne die Datenmenge nach Zeit auf n Datenpunkte reduzieren, um den Durchschnittswert über die gruppierten Zeitspannen zu geben.
Ich habe versucht, eine Abfrage mit ausgefallenen GROUP BY-Klauseln zu erstellen, war nicht in der Lage, etwas zu bauen, das ausgeführt wird. Ich dachte, dies sollte eine häufige Aufgabe für SQL sein, aber ich habe keine Antworten online gefunden.
Die Tabellenstruktur sieht im Prinzip wie folgt aus. Dies ist eigentlich die MOM 2005 OnePoint-Datenbank, aber ich denke, die Anwendung ist irrelevant.
CREATE TABLE PerfTable (
[time] datetime,
value float,
Server nvarchar(356),
ObjectName nvarchar(225),
CounterName nvarchar(225),
InstanceName nvarchar(225),
Scale float
);
Versuchen Sie, nach einem bestimmten Zeitintervall zu gruppieren? –
Ein beliebiges Zeitintervall. Ich kann entscheiden, dass 20 Datenpunkte auf dem Diagramm ideal sind, deshalb möchte ich X Datenpunkte auf 20 reduzieren. – spoulson