Versi Teruji &Berfungsi
User.select(:first,:email).group(:first,:email).having("count(*) > 1")
Juga, ini sedikit tidak berhubungan tetapi berguna. Jika Anda ingin melihat berapa kali setiap kombinasi ditemukan, letakkan .size di akhir:
User.select(:first,:email).group(:first,:email).having("count(*) > 1").size
dan Anda akan mendapatkan set kembali hasil yang terlihat seperti ini:
{[nil, nil]=>512,
["Joe", "example@sqldat.com"]=>23,
["Jim", "example@sqldat.com"]=>36,
["John", "example@sqldat.com"]=>21}
Menurut saya itu cukup keren dan belum pernah dilihat sebelumnya.
Penghargaan untuk Taryn, ini hanya versi modifikasi dari jawabannya.