[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