Calcular o tempo médio
Olá, como faço para calcular o tempo médio, por exemplo a tabela que irei extrair a informação possui apenas um campo DATA_HORA.
A query que utilizei para ver se trás as infos corretas foi:
SELECT MIN(DATA_HORA) AS DATA_INI, MAX(DATA_HORA) AS DATA_FIM
FROM INVENTARIO_HISTORICO
Já tentei utilizar o AVG para tirar a media não deu certo, e última observação é que não posso exibir as colunas de DATA_INI e DATA-FIM, apenas a TEMPO_MEDIO.
A query que utilizei para ver se trás as infos corretas foi:
SELECT MIN(DATA_HORA) AS DATA_INI, MAX(DATA_HORA) AS DATA_FIM
FROM INVENTARIO_HISTORICO
Já tentei utilizar o AVG para tirar a media não deu certo, e última observação é que não posso exibir as colunas de DATA_INI e DATA-FIM, apenas a TEMPO_MEDIO.
Andrey Cesar
Curtidas 0
Respostas
Stella Oliveira
12/03/2020
Para SQL SERVER:
– Médias por hora:
– Médias por dia:
SELECT CAST(CAST(CAST(CAST(E3TimeStamp as float)*1440 as bigint) as float)/1440 as datetime) as Minuto, AVG(Campo) as Média FROM Tabela GROUP BY CAST(CAST(CAST(CAST(E3TimeStamp as float)*1440 as bigint) as float)/1440 as datetime)
– Médias por hora:
SELECT CAST(CAST(CAST(CAST(E3TimeStamp as float)*24 as bigint) as float)/24 as datetime) as Hora, AVG(Campo) as Média FROM Tabela GROUP BY CAST(CAST(CAST(CAST(E3TimeStamp as float)*24 as bigint) as float)/24 as datetime)
– Médias por dia:
SELECT CAST(FLOOR(CAST(E3TimeStamp as float)) as datetime) as Dia, AVG(Campo) as Média FROM Tabela GROUP BY CAST(FLOOR(CAST(E3TimeStamp as float)) as datetime)
GOSTEI 0
Emerson Nascimento
12/03/2020
tempo médio de quê, se você não tem um intervalo?
GOSTEI 0
Andrey Cesar
12/03/2020
Resolvi dessa maneira e deu certo o resultado esperado:
SELECT U.NOME AS NOME DO USUARIO, Q1.INTERVALO / Q1.QTD AS MEDIA
FROM USUARIO U
LEFT JOIN
(SELECT ID_[CAMPO], ID_[CAMPO], MAX(DATA_HORA) - MIN(DATA_HORA) AS INTERVALO, COUNT(*) AS QTD
FROM [TABELA]
GROUP BY 1,2) Q1
SELECT U.NOME AS NOME DO USUARIO, Q1.INTERVALO / Q1.QTD AS MEDIA
FROM USUARIO U
LEFT JOIN
(SELECT ID_[CAMPO], ID_[CAMPO], MAX(DATA_HORA) - MIN(DATA_HORA) AS INTERVALO, COUNT(*) AS QTD
FROM [TABELA]
GROUP BY 1,2) Q1
GOSTEI 0