PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Encontre linhas com vários campos duplicados com Active Record, Rails e Postgres


Versão testada e funcional
User.select(:first,:email).group(:first,:email).having("count(*) > 1")

Além disso, isso é um pouco não relacionado, mas útil. Se você quiser ver quantas vezes cada combinação foi encontrada, coloque .size no final:
User.select(:first,:email).group(:first,:email).having("count(*) > 1").size

e você obterá um conjunto de resultados que se parece com isso:
{[nil, nil]=>512,
 ["Joe", "[email protected]"]=>23,
 ["Jim", "[email protected]"]=>36,
 ["John", "[email protected]"]=>21}

Achei muito legal e não tinha visto antes.

Crédito para Taryn, esta é apenas uma versão aprimorada de sua resposta.