Como calcular média , máxima e mínima no postgresql
07/02/2014
0
Através deste sql:
SELECT id,temperatura FROM tempexterna ORDER BY id DESC LIMIT 10
Gostaria de calcular a média dos ultimos 10 registro e mandar para uma váriavel no meu programa em Visual Studio C# para guarda-la e usar-la num gráfico.
Desde já, grato.
Fabiano Schincariol
Post mais votado
07/02/2014
ERRO: coluna "tempexterna.id" deve aparecer na cláusula GROUP BY ou ser utilizada em uma função de agregação
LINE 1: SELECT AVG(temperatura)FROM tempexterna ORDER BY id DESC LIM...
^
********** Erro **********
ERRO: coluna "tempexterna.id" deve aparecer na cláusula GROUP BY ou ser utilizada em uma função de agregação
SQL state: 42803
Caracter: 50
Fabiano Schincariol
Mais Posts
07/02/2014
Leandro Chiodini
SELECT AVG(temperatura) ,MAX(temperatura) ,MIN(temperatura) FROM tempexterna ORDER BY id DESC LIMIT 10
07/02/2014
Leandro Chiodini
ja que o id eh unico
07/02/2014
Fabiano Schincariol
id, data, hora, temperatura
O meu software inseri no banco a cada dez minutos os dados de data hora e temperatura. Sem o id no order by não tem como ordenar as dez ultimas temperaturas.
Tirei o order by e não deu certo também
Grato
07/02/2014
Marisiana Battistella
Vê se essa solução te ajuda...
select AVG(temp.temperatura) as mediatemp
from (select id,
temperatura
from tempexterna
order by id DESC LIMIT 10) temp
Att
10/02/2014
Fabiano Schincariol
ERRO: função avg(record, integer) não existe
LINE 1: SELECT AVG(temp,temperatura) AS mediatemp
^
HINT: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explícitas.
********** Erro **********
ERRO: função avg(record, integer) não existe
SQL state: 42883
Dica: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explícitas.
Caracter: 8
10/02/2014
Marisiana Battistella
SELECT AVG(temp,temperatura)
Dentro do parenteses é um ponto, pois "temp" é a abreviatura do select que tá na cláusula from.
é a mesma notação de utilizar abreviaturas para as tabelas....
10/02/2014
Fabiano Schincariol
10/02/2014
Marisiana Battistella
Fico feliz por ter conseguido te ajudar!
10/02/2014
Fabiano Schincariol
Estava entendo seu código que me passou, vocÊ criou um tabela com o nome de temp e a coluna com o nome de mediatemp, está correto o meu pensamento?
Desculpa, sou iniciante em SQL.
10/02/2014
Marisiana Battistella
Precisei colocar o apelido "temp" para poder referenciar os campos que retornam do subselect e pegar os valores deles.
O subselect retorna apenas os últimos 10 registros de temperaturas, desses 10 registros que me retornaram calculei a média com a função AVG.
Não sei t dizer como vc fará para pegar o valor C#, porque eu não sei programar em C#.. =D
Mas vc pode utilizar o código normalmente como se vc tivesse pegando valores de uma tabela...
Clique aqui para fazer login e interagir na Comunidade :)