..GBEST.. 0 Denunciar post Postado Abril 7, 2010 Tenho a tabela game com as colunas : TotalRank,TotalGrade e TotalScore queria fazer uma consulta $sql = "SELECT TotalScore,TotalGrade,TotalRank from game where TotalGrade=x"; Ai,todos que aparecessem,fazer a soma,e dividir pelo número de registros que aparecerem,tipo uma média.Alguem sabe como ? Compartilhar este post Link para o post Compartilhar em outros sites
kakaroto developer 0 Denunciar post Postado Abril 8, 2010 pq você nao pegar o resultado e faz o php soma o resultado desse mysql e dividir por 3 ou senao você vai que ter algo nesse estilo ai SELECT ((nota1 + nota2 + nota3)/2) as total FROM game pq O SUM em MYSQL ESTA DANDO ERRO AQUI PARA MIM :( Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 8, 2010 olha ae $sql = mysql_query("SELECT avg( TotalScore ) as Score, avg( TotalGrade) as Grade, avg( TotalRank ) as Rank from game where TotalGrade=x"); $linha = mysql_fetch_array($sql); echo "Média de TotalScore = ".$linha['Score']; echo "<br>Média de TotalGrade = ".$linha['Grade']; echo "<br>Média de TotalRank = ".$linha['Rank']; Compartilhar este post Link para o post Compartilhar em outros sites
Jaime_Pinheiro 0 Denunciar post Postado Abril 8, 2010 Lembrando que avg, sum e etc são comandos que vão bem acompanhados por GROUP BY, se não "obrigatorios" em alguns casos. Dê uma lida para esclarecer a ideia: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html Compartilhar este post Link para o post Compartilhar em outros sites
kakaroto developer 0 Denunciar post Postado Abril 8, 2010 Lembrando que avg, sum e etc são comandos que vão bem acompanhados por GROUP BY, se não "obrigatorios" em alguns casos. Dê uma lida para esclarecer a ideia: http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html pare ser sincero eu nao entendi muito bem o uso do avg nesse caso e estou em duvida agora com a postagem do cara valeu pelo seu link ,tanto SUM com o AVG eles trabalham para Grupo vlw sua postagem ;) Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 8, 2010 nesse caso não se faz obrigatório o uso do group by pois não há necessidade de separar em grupos, e o banco retorna como sendo um grupo só usando o where, usando avg em todos os campos o banco já entende como agrupamento. Compartilhar este post Link para o post Compartilhar em outros sites
Jaime_Pinheiro 0 Denunciar post Postado Abril 8, 2010 Como disse, nem sempre é obrigatorio. Contudo, é boa prática de programação utilizar funções de agrupamento com cláusulas de GROUP BY, assim como UPDATE e DELETE sempre com WHERE. Cada um é livre para fazer do jeito que achar melhor... Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 8, 2010 Como disse, nem sempre é obrigatorio. Contudo, é boa prática de programação utilizar funções de agrupamento com cláusulas de GROUP BY, assim como UPDATE e DELETE sempre com WHERE. Cada um é livre para fazer do jeito que achar melhor... lgl fera, pensando bem é melhor saber como funciona pra num kebrar a kbça depois!! ;) Compartilhar este post Link para o post Compartilhar em outros sites
..GBEST.. 0 Denunciar post Postado Abril 8, 2010 Nenhum dos codigos estão pegando a média, estão aparecendo o valor do meio, Ex : 10 50 40 30 70 ta aparecendo : 40,que é a linha do meio. Compartilhar este post Link para o post Compartilhar em outros sites
Victor Cometti 8 Denunciar post Postado Abril 8, 2010 lembrando que no meu código só vai pegar a média das linhas que TotalGrade for igual a x, e não todas as linhas. se você quizer pegar todos você terá que tirar o where TotalGrade=x e a média pode coincidir com o valor de alguma linha Compartilhar este post Link para o post Compartilhar em outros sites