Geteste en werkende versie
User.select(:first,:email).group(:first,:email).having("count(*) > 1")
Dit is ook een beetje niet gerelateerd, maar handig. Als je wilt zien hoe vaak elke combinatie is gevonden, zet je .size aan het einde:
User.select(:first,:email).group(:first,:email).having("count(*) > 1").size
en je krijgt een resultaat terug dat er als volgt uitziet:
{[nil, nil]=>512,
["Joe", "[email protected]"]=>23,
["Jim", "[email protected]"]=>36,
["John", "[email protected]"]=>21}
Ik vond dat best cool en had het nog niet eerder gezien.
Met dank aan Taryn, dit is slechts een aangepaste versie van haar antwoord.