bcs_ptx 0 Denunciar post Postado Abril 27, 2012 eai pessoal, seguinte, tenho uma tbl_votos com o campo opcao, no campo opcao podem ir 5 tipos de valores, opcao1,opcao2,opcao3,opcao4 e opcao5, ai quero fazer um contador, mas mesmo cadastrando só um campo todos os campos soman, oque estou fazendo errado? abraços. SELECT sum(opcao) = 'opcao1' as opcao1, sum(opcao) = 'opcao2' as opcao2 from tbl_votos; Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 27, 2012 SUM() você usa para somar e somar número. Se seus valores são strings como apresentado e você quer saber o total de ocorrências, use COUNT(). E, tanto quanto eu sei, você não pode fazer esse tipo de comparação antes do FROM. Sendo assim, acredito que deva usar um GROUP BY para agrupar as contagens por seus respectivos valores. Compartilhar este post Link para o post Compartilhar em outros sites
bcs_ptx 0 Denunciar post Postado Abril 27, 2012 cara, eu sempre fiz assim e sempre deu certo, mas agora esta dando erro por que eu tenho um campo, e no campo eu tenho que somar, exemplo, se tiver 5 registros opcao1 e 2 opcao3, ele teria que separar eles, fiz com o count e me retorna 0 em todos SELECT COUNT(opcao) = 'opcao1' as opcao1, COUNT(opcao) = 'opcao2' as opcao2 from tbl_votos; Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 27, 2012 Olha, eu fiz um teste rápido aqui com uma estrutura bem simples só com a chave primária e o campo com o texto da opção e essa query: mysql> SELECT `option`, COUNT( `option` ) FROM `counting` GROUP BY `option`; Retornou aquilo que eu imaginava e disse que retornaria: +---------+-------------------+ | option | COUNT( `option` ) | +---------+-------------------+ | valor 1 | 2 | | valor 2 | 2 | | valor 3 | 4 | +---------+-------------------+ 3 rows in set (0.00 sec) Inseri alguns registros aleatoriamente um número também aleatório de vezes. Resolve seu caso? Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Abril 27, 2012 Não é nada relacionado ao PHP, movendo... PHP :seta: MySQL Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 28, 2012 Ou ... SELECT sum(case when opcao = 'opcao1' then 1 else 0 end) opcao1, sum(case when opcao = 'opcao2' then 1 else 0 end) opcao2 from tbl_votos; Me parece que temos um problema de modelagem aqui. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Abril 28, 2012 Mas Motta, daí se o sistema dele cresce e passa a ter três, quatro, cinco... cem que seja, ele vai além de ter uma query monstruosa, ser obrigado a sempre alterar a query. Mas quem sou eu pra questionar, o especialista aqui é você ^^ Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 28, 2012 Mas Motta, daí se o sistema dele cresce e passa a ter três, quatro, cinco... cem que seja, ele vai além de ter uma query monstruosa, ser obrigado a sempre alterar a query. Concordo, me parece haver um problema na modelagem, já disse. Thanks pelo especialista... :) Compartilhar este post Link para o post Compartilhar em outros sites