मान लें कि हमारे पास django में एक मॉडल इस प्रकार है:
class Literal:
name = models.CharField(...)
...
नाम फ़ील्ड अद्वितीय नहीं है, और इस प्रकार डुप्लिकेट मान हो सकते हैं। मुझे निम्नलिखित कार्य को पूरा करने की आवश्यकता है: उस मॉडल से सभी पंक्तियों का चयन करें जिसमें फ़ील्ड का कम से कम एक डुप्लिकेट मान है name
।
मुझे पता है कि इसे सादे एसक्यूएल का उपयोग कैसे करना है (यह सबसे अच्छा समाधान नहीं हो सकता है):
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
तो, क्या django ORM का उपयोग करके इसे चुनना संभव है? या बेहतर एसक्यूएल समाधान?
Literal.objects.values('name').annotate(name_count=Count('name')).filter(name_count__gt=1)
?