Я работаю с базой данных MSSQL 2000, содержащей большое количество данных Windows perfmon, собранных для всех серверов в среде. Я использую SSRS 2005 для создания настраиваемого графика отчетов, чтобы визуализировать метрики с течением времени.Как я могу агрегировать строки для уменьшения разрешения данных в SQL-запросе?
Если бы я хотел посмотреть, скажем, в прошлом месяце, большое количество точек данных создало бы уродливый отчет с нечитаемыми метками на оси X. Я хотел бы уменьшить совокупность данных по времени до n точек данных, чтобы дать среднее значение по сгруппированным временным промежуткам.
Я попытался создать запрос с причудливыми предложениями GROUP BY, не смог создать что-то, что выполняется. Я полагал, что это должно быть обычной задачей для SQL, но я не нашел ответов в Интернете.
Структура таблицы в основном выглядит ниже. Это фактически MOM 2005 OnePoint базы данных, но я думаю, что приложение не имеет значения.
CREATE TABLE PerfTable (
[time] datetime,
value float,
Server nvarchar(356),
ObjectName nvarchar(225),
CounterName nvarchar(225),
InstanceName nvarchar(225),
Scale float
);
Вы пытаетесь сгруппировать по определенному интервалу времени? –
Произвольный временной интервал. Я могу решить, что 20 точек данных на диаграмме идеальны, поэтому я хочу уменьшить количество данных X до 20. – spoulson