Distinct
और Group By
आपको अलग परिणाम देने जा रहे हैं। अपेक्षित परिणाम प्राप्त करने के लिए आप उपयोग करना चाहेंगे
Person.group(:name).count
(1.2ms) SELECT COUNT(*) AS count_all, name AS name FROM "people" GROUP BY "people"."name"
=> {"Dan"=>3, "Dave"=>2, "Vic"=>1}
ऊपर देखा गया, समूह चीजों को हैश के रूप में लौटाएगा। जबकि विशिष्ट नीचे देखे गए कुल लोगों की संख्या देता है।
Person.distinct(:name).count
(0.4ms) SELECT DISTINCT COUNT(DISTINCT "people"."id") FROM "people"
=> 6