Como contar registros duplicados ?

19,404 views
Skip to first unread message

MDCastro

unread,
Oct 25, 2010, 7:12:28 AM10/25/10
to rails-br
bom dia, como eu poderia contar registros duplicados ? Exibir por
exemplo, você tem 10 registros com o nome "chiclete" :)

Luiz

unread,
Oct 25, 2010, 7:18:17 AM10/25/10
to rail...@googlegroups.com
pensei em map-reduce mas � demais eu acho aiehauiea

Fábio

unread,
Oct 25, 2010, 8:29:32 AM10/25/10
to rail...@googlegroups.com
Dá para fazer isso no bom e velho SQL.

Algo do tipo:

SELECT count(nome), nome FROM cidades GROUP BY nome HAVING COUNT(nome) > 1 ORDER BY count(nome) DESC;

No exemplo acima, eu tenho a tabela "cidades", onde ele retorna quantas cidades com nome repetido existem no Brasil.



Fábio T. da Costa
fabiotc.com.br

My profiles: LinkedIn Facebook Twitter Last.fm
Contact me: Google Talk/ fabiotc


2010/10/25 Luiz <lu...@germantech.com.br>
pensei em map-reduce mas é demais eu acho aiehauiea


--
Você está recebendo esta mensagem porque se inscreveu no grupo "rails-br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para rail...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para rails-br+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/rails-br?hl=pt-BR.


Ivan Schuster

unread,
Oct 25, 2010, 8:56:57 AM10/25/10
to rail...@googlegroups.com
quantidade = Produto.where('nome = ?', 'chiclete' ).count

Isto?

Em 25 de outubro de 2010 09:12, MDCastro <mauricio...@gmail.com> escreveu:
bom dia, como eu poderia contar registros duplicados ? Exibir por
exemplo, você tem 10 registros com o nome "chiclete" :)
--
Você está recebendo esta mensagem porque se inscreveu no grupo "rails-br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para rail...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para rails-br+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/rails-br?hl=pt-BR.




--
Ivan

Daniel Teixeira

unread,
Oct 25, 2010, 9:59:25 AM10/25/10
to rail...@googlegroups.com
No rails 2.3 seria Produto.count(:group => :nome, :conditions => ['nome = ?', 'chiclete'])

2010/10/25 Ivan Schuster <ihsch...@gmail.com>



--
Daniel Teixeira
Tagview Tecnologia


Filipe Chagas

unread,
Oct 25, 2010, 10:12:27 AM10/25/10
to rail...@googlegroups.com

Na verdade ele não quer contar quantos 'chicletes' ele tem, mas quer que o select retorne todas as duplicações. Pelo menos foi oq entendi.
Bem, o SQL puro pra fazer isso seria algo mais ou menos assim:

Select nome, count(nome)
from tabela
group by nome
having count(nome) > 1;

Isso vai te retornar algo como:

CHICLETE   2
COCADA      5
BALA            9

etc...

Filipe Chagas
Blog!
@filipechagas

Daniel Teixeira

unread,
Oct 25, 2010, 11:54:01 AM10/25/10
to rail...@googlegroups.com
talvez Produto.count(:group => :nome, :having => ['count_all > ?', 1])

2010/10/25 Filipe Chagas <frocc...@gmail.com>



--
Daniel Teixeira
Tagview Tecnologia


Reply all
Reply to author
Forward
0 new messages