Obter a média de cada hora do dia com base em registros gravados

Boa noite pessoal. Preciso montar uma consulta no SQL Server onde preciso obter a média de cada hora do dia. Atualmente as informações são registradas a cada 9 segundos conforme exemplo abaixo:
2021-05-26 21:17:14.757
2021-05-26 21:17:04.727
2021-05-26 21:16:54.787
2021-05-26 21:16:44.810…e assim por diante.
Sendo assim preciso obter a média por exemplo:
15:00 - ???
16:00 - ???
17:00 - ???
18:00 - ??? e assim por diante.
Alguem poderia dar alguma dica de como montar este script e obter essa média?

Olá Eliziario,

Conforme artigo https://kb.elipse.com.br/obtendo-medias-de-tempo-minutos-horas-e-dias-em-um-banco-de-dados-sql-server/, basta utilizar a sintaxe do item Médias por hora em um objeto consulta:

Outra alternativa seria utilizar os recursos do Relatório para calcular a média, conforme o artigo https://kb.elipse.com.br/kb37429-agrupando-dados-no-relatorio/.
Para agrupar por hora, utilizar no DataField a expressão ‘=Hour(E3TimeStamp)’.

Boa tarde Délio, olha aqui a instrução que montei, eu pensei em fazer um loop para os demais horários do dia.

USE BDHistoricos

GO

SELECT AVG(HIST_PENA11)

FROM ILH_MED_P1F01

WHERE E3TimeStamp

BETWEEN ‘2021-05-26 21:00’ AND ‘2021-05-26 22:00’

No exemplo acima vai pegar a média das 21 até as 22 horas. O que acha?

Boa tarde,

Para evitar a realização deste laço para os demais horários, eu ainda sugiro que utilize a sintaxe mencionada anteriormente.
Se desejar, basta inserir um filtro para retornar dias específicos (cláusula WHERE):

SELECT CAST(CAST(CAST(CAST(E3TimeStamp as float)*24 as bigint) as float)/24 as datetime) as Hora, AVG(Campo1) as Média
FROM Tabela
WHERE (E3TimeStamp  >= #<%DataInicial%>#  AND  E3TimeStamp <= #<%DataFinal%># )
GROUP BY CAST(CAST(CAST(CAST(E3TimeStamp as float)*24 as bigint) as float)/24 as datetime)
ORDER BY CAST(CAST(CAST(CAST(E3TimeStamp as float)*24 as bigint) as float)/24 as datetime)

Retornando dados apenas de um determinado dia:

image

image

Se ainda houver dúvidas, por gentileza envia sua aplicação para o meu e-mail.