Ir para conteúdo
Fórum Script Brasil

Wallcrawler

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre Wallcrawler

Wallcrawler's Achievements

0

Reputação

  1. Consegui resolver o impasse usando a seguinte query: select coduser as usu, count(*) as votos, (select count(distinct cel_number) from votacao_1 a where a.coduser = usu) as votos_absolutos from votacao_1 group by coduser order by votos desc, votos_absolutos asc; Ela traz tudo bonitinho, e usando uma subquery somente. A minha única dúvida, é quanto a perfomance dela. vocês acham que ela seria a ideal, levando em consideração que a previsão é de se receber mais ou menos 1 milhão de votos por semana?
  2. Exatamente, cada candidato pode ter mais de um voto e funciona assim: O votante é identificado pelo numero do celular de quem está enviando (a votação será via SMS). O total de votos, é a qtd de votos que o candidato recebeu. O absoluto, é a qtd de votos únicos. Por exemplo: Se um votante (uma única pessoa) vota 300 vezes no candidato A, o candidato A vai possuir um total de 300 votos + a qtd de votos das outras pessoas. Ou seja, todos os votos serão computados. Mas, por ter sido votado 300 vezes por um único votante, o candidato A terá apenas um voto absoluto (único) computado. Ou seja, é a qtd de numeros de celulares diferentes de que ele recebeu votos. Isso serve como critério de desempate. Entenderam a briga? abraços
  3. Meu primeiro post no scriptbrasil! Bom galera o meu problema é o seguinte: Tenho uma tabela de votação, que é montada desse jeito: DROP TABLE IF EXISTS `votacao_1`; CREATE TABLE `votacao_1` ( `int_voto` int(11) NOT NULL AUTO_INCREMENT, `coduser` varchar(20) NOT NULL, `uf` varchar(2) NOT NULL, `cel_number` varchar(10) NOT NULL, `cod_operadora` varchar(10) NOT NULL, `data_voto` datetime NOT NULL, PRIMARY KEY(`int_voto`), CONSTRAINT `Ref_05` FOREIGN KEY (`coduser`) REFERENCES `tbl_participantes`(`coduser`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=INNODB CHARACTER SET latin1 COLLATE latin1_general_ci ; Que possui cerca de 5000 registros. Gostaria de montar um select que trouxesse: o coduser, a qtd de votos total por coduser, e a qtd de votos absolutos (únicos). Estou usando o seguinte select, que me atende em 80% do que eu quero: select coduser as usu, count(*) as votos, (select distinctrow count(*) from votacao_1 a where a.coduser = usu) as votos_absolutos from votacao_1 group by coduser order by votos desc, votos_absolutos asc Ela me traz o coduser, o total de votos, mas não traz a qtd de votos absolutos, ou melhor dizendo, ele me traz como votos absolutos, a mesma quantidade dos votos totais. Estou aqui queimando as pestanas pra tentar resolver. :-) Se vocês puderem me dar uma luz de como faço isso, fico desde já agradecido.
×
×
  • Criar Novo...