次のように定義されたdjangoのモデルがあるとします。
class Literal:
name = models.CharField(...)
...
名前フィールドは一意ではないため、値が重複する可能性があります。次のタスクを実行する必要があります。フィールドの重複する値が少なくとも1つあるモデルからすべての行を選択しますname
。
私はプレーンSQLを使用してそれを行う方法を知っています(最善の解決策ではないかもしれません):
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
それで、django ORMを使用してこれを選択することは可能ですか?またはより良いSQLソリューション?
Literal.objects.values('name').annotate(name_count=Count('name')).filter(name_count__gt=1)
か?