Angenommen, wir haben ein Modell in Django, das wie folgt definiert ist:
class Literal:
name = models.CharField(...)
...
Das Namensfeld ist nicht eindeutig und kann daher doppelte Werte haben. Ich muss die folgende Aufgabe ausführen: Wählen Sie alle Zeilen aus dem Modell aus, die mindestens einen doppelten Wert des name
Felds haben.
Ich weiß, wie man es mit einfachem SQL macht (möglicherweise nicht die beste Lösung):
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
Ist es also möglich, dies mit Django ORM auszuwählen? Oder bessere SQL-Lösung?
Literal.objects.values('name').annotate(name_count=Count('name')).filter(name_count__gt=1)
?