предположим, что у нас есть модель в 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
);
Итак, можно ли выбрать это с помощью django ORM? Или лучшее решение SQL?
Literal.objects.values('name').annotate(name_count=Count('name')).filter(name_count__gt=1)
?