परीक्षित और कार्यशील संस्करण
User.select(:first,:email).group(:first,:email).having("count(*) > 1")
इसके अलावा, यह थोड़ा असंबंधित है लेकिन आसान है। यदि आप देखना चाहते हैं कि प्रत्येक संयोजन कितनी बार मिला, तो अंत में .size डालें:
User.select(:first,:email).group(:first,:email).having("count(*) > 1").size
और आपको एक परिणाम सेट वापस मिलेगा जो इस तरह दिखता है:
{[nil, nil]=>512,
["Joe", "[email protected]"]=>23,
["Jim", "[email protected]"]=>36,
["John", "[email protected]"]=>21}
सोचा था कि यह बहुत अच्छा था और इसे पहले नहीं देखा था।
टैरिन को श्रेय, यह उनके उत्तर का केवल एक संशोधित संस्करण है।