У меня есть решение, которое тесно связано с тем, что я просил. Если бы я хотел сгруппировать по единице времени, это довольно просто:
Группировка по часам:
select
dateadd(hh, datediff(hh, '1970-01-01', [time]), '1970-01-01'),
Server, ObjectName, CounterName, InstanceName, avg(value)
from PerfTable
group by
dateadd(hh, datediff(hh, '1970-01-01', [time]), '1970-01-01'),
ComputerName, ObjectName, CounterName, InstanceName
order by
dateadd(hh, datediff(hh, '1970-01-01', [time]), '1970-01-01') desc,
ObjectName, CounterName, InstanceName, ComputerName
Это просто не решает проблему уменьшения до n точек данных.