sql >> Base de Datos >  >> RDS >> PostgreSQL

Encuentre filas con múltiples campos duplicados con Active Record, Rails y Postgres

Versión probada y funcional

User.select(:first,:email).group(:first,:email).having("count(*) > 1")

Además, esto no tiene nada que ver, pero es útil. Si desea ver cuántas veces se encontró cada combinación, coloque .size al final:

User.select(:first,:email).group(:first,:email).having("count(*) > 1").size

y obtendrá un conjunto de resultados similar a este:

{[nil, nil]=>512,
 ["Joe", "[email protected]"]=>23,
 ["Jim", "[email protected]"]=>36,
 ["John", "[email protected]"]=>21}

Pensé que era genial y no lo había visto antes.

Gracias a Taryn, esta es solo una versión modificada de su respuesta.