Testovaná a funkční verze
User.select(:first,:email).group(:first,:email).having("count(*) > 1")
Také to trochu nesouvisí, ale je praktické. Pokud chcete vidět, kolikrát byly jednotlivé kombinace nalezeny, vložte na konec .size:
User.select(:first,:email).group(:first,:email).having("count(*) > 1").size
a dostanete výsledek, který vypadá takto:
{[nil, nil]=>512,
["Joe", "[email protected]"]=>23,
["Jim", "[email protected]"]=>36,
["John", "[email protected]"]=>21}
Myslel jsem, že je to docela cool a ještě jsem to neviděl.
Díky Taryn, toto je jen upravená verze její odpovědi.