django에 다음과 같이 정의 된 모델이 있다고 가정합니다.
class Literal:
name = models.CharField(...)
...
이름 필드는 고유하지 않으므로 중복 값을 가질 수 있습니다. 다음 작업을 수행해야 합니다. 필드의 중복 값 이 하나 이상 있는 모델에서 모든 행을 선택 name
합니다.
일반 SQL을 사용하여 수행하는 방법을 알고 있습니다 (최선의 솔루션이 아닐 수 있음).
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
그래서 장고 ORM을 사용하여 이것을 선택할 수 있습니까? 아니면 더 나은 SQL 솔루션?
Literal.objects.values('name').annotate(name_count=Count('name')).filter(name_count__gt=1)
합니까?