Como retirar a média das 24 horas do dia e realizar a soma das médias no relatório?

Olá amigos, nosso relatório de geração de energia é gerado através do banco de dados com informações a cada 2 segundos. Nossas máquinas produzem uma quantidade de energia X a cada hora. Quando emitimos um relatório de 01 hora nele contém 1800 resultados nos quais precisamos tirar a média para saber o valor gerado pela máquina em 1 hora.
Preciso emitir um relatório com a média das 24 horas do dia e soma-las para saber a geração total de 1 dia, é possível realizar? Tentamos algumas funções porém sem sucesso.

Olá,

  1. Qual banco de dados está usando? Access, SQL, …?
  2. Quais as colunas da sua tabela deseja agregar desta forma?

Sem saber as colunas, posso supor que esteja usando o padrão do Hist do elipse, que registra a estampa de tempo no [E3TimeStamp] e cada coluna tem seu par com o _Quality. De forma simples, sem lidar com qualidades < 192, eis uma ideia para SQL Server:

DECLARE @TableName NVARCHAR(MAX) = '[TableName]';

DECLARE @Sql NVARCHAR(MAX);

SET @Sql = (
    SELECT STRING_AGG('AVG([' + COLUMN_NAME + ']) AS [' + COLUMN_NAME + ']', ', ')
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_NAME = PARSENAME(@TableName, 1) 
      AND TABLE_SCHEMA = PARSENAME(@TableName, 2)
      AND COLUMN_NAME NOT LIKE '%_Quality'
      AND COLUMN_NAME <> 'E3TimeStamp'
);

SET @Sql = '
WITH HourlyAverages AS (
    SELECT 
        FORMAT([E3TimeStamp], ''yyyy-MM-dd HH:00:00'') AS [HourlyTimestamp],
        FORMAT([E3TimeStamp], ''yyyy-MM-dd'') AS [Date],
        ' + @Sql + '
    FROM ' + @TableName + '
    GROUP BY 
        FORMAT([E3TimeStamp], ''yyyy-MM-dd HH:00:00''),
        FORMAT([E3TimeStamp], ''yyyy-MM-dd'')
)
SELECT 
    [Date],
    ' + (
        SELECT STRING_AGG('SUM([' + COLUMN_NAME + ']) AS [' + COLUMN_NAME + ']', ', ')
        FROM INFORMATION_SCHEMA.COLUMNS
        WHERE TABLE_NAME = PARSENAME(@TableName, 1) 
          AND TABLE_SCHEMA = PARSENAME(@TableName, 2)
          AND COLUMN_NAME NOT LIKE '%_Quality'
          AND COLUMN_NAME <> 'E3TimeStamp'
    ) + '
FROM HourlyAverages
GROUP BY [Date]
ORDER BY [Date];
';

EXEC sp_executesql @Sql;

Basicamente ele itera pelas colunas existentes, descarta as de sufixo “_Quality”, faz a média horária e soma todas as médias do dia.
Esta query pode lidar com mais ou menos colunas, mas irá ser menos performática do que consultar cada campo de interesse.
Você pode ver (e utilizar) a query resultado imprimindo a consulta no console com o comando

PRINT @Sql;

Olá Leandro, obrigado por responder! Utilizamos o banco de dados SQL !
Este é o modelo inicial do relatório. e como está no SQL.

Este modelo que você me passou aplico direto no SQL ou no Studio E3?

* SQL Server, acabei escrevendo errado.

Sobre a sua pergunta, execute no SQL Managment Studio e verifique a query resultado pela linha através do PRINT @Sql, feito isso, é possível testar a query no próprio SQL Studio e então coloca-lá diretamente no relatório do elipse.

Ok, muito obrigado pela ajuda Leandro, vou testar aqui e assim que tiver um resultado te aviso…,.,