[firebase-br] Erro Cálculo da média
Alysson Azevedo
agalysson em gmail.com
Qui Ago 5 09:29:38 -03 2010
Não tem bug nenhum, acontece que vc está entendendo isso errado...
COUNT AVG SUM
> 1 3,8 3,8
> 3 4,8 14,4
> 8 5 40
>
a conta (3,8 + 4,8 + 5) / 3 = 4,53
agora, ( (3,8 * 1) + (4,8 *3) + (5 * 8) ) / 12 = 4,85
sacou?
--
Alysson Gonçalves de Azevedo
(11) 8491-7730
(\(''^_^ )/)
"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"
Em 5 de agosto de 2010 08:59, Siro <siro em protej.com.br> escreveu:
> Realmente, esta correto, da forma que vc fez, eu também testei aqui.
> Mas veja a que estou fazendo:
>
> SELECT count(i.valor_unitario),
> AVG(I.VALOR_UNITARIO), sum(I.valor_unitario)
> FROM ITENS_SAIDAS I
> INNER JOIN SAIDAS_PRODUTOS S ON (S.ID = I.ID_SAIDA)
> WHERE I.ID_PRODUTO = 10232 and S.DATA_SAIDA >= '03/09/2010'
> GROUP BY I.VALOR_UNITARIO
>
> retorna:
> COUNT AVG SUM
> 1 3,8 3,8
> 3 4,8 14,4
> 8 5 40
>
> Isto esta correto.. Agora
>
> o mesmo sql sem o agrupamento retorna:
>
> SELECT count(i.valor_unitario),
> AVG(I.VALOR_UNITARIO), sum(I.valor_unitario)
> FROM ITENS_SAIDAS I
> INNER JOIN SAIDAS_PRODUTOS S ON (S.ID = I.ID_SAIDA)
> WHERE I.ID_PRODUTO = 10232 and S.DATA_SAIDA >= '03/09/2010'
> /***********************************/
> --GROUP BY I.VALOR_UNITARIO
> /***********************************/
> retorna:
> COUNT AVG SUM
> 12 4,85 58,2
>
> Mostrando o valor minimo e máximo e retornou assim
> SELECT count(i.valor_unitario),
> AVG(I.VALOR_UNITARIO), min(I.valor_unitario), max(I.valor_unitario),
> sum(I.valor_unitario)
> FROM ITENS_SAIDAS I
> INNER JOIN SAIDAS_PRODUTOS S ON (S.ID = I.ID_SAIDA)
> WHERE I.ID_PRODUTO = 10232 and S.DATA_SAIDA >= '03/09/2010'
>
> COUNT AVG MIN MAX SUM
> 12 4,85 3,8 5 58,2
>
>
Mais detalhes sobre a lista de discussão lista