załóżmy, że mamy model w django zdefiniowany w następujący sposób:
class Literal:
name = models.CharField(...)
...
Pole nazwy nie jest unikalne i dlatego może mieć zduplikowane wartości. Muszę wykonać następujące zadania: Wybierz wszystkie wiersze z modelu, które mają co najmniej jeden duplikat wartości w name
polu.
Wiem jak to zrobić używając zwykłego SQL (może nie być najlepszym rozwiązaniem):
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
Czy jest więc możliwe wybranie tego za pomocą django ORM? Albo lepsze rozwiązanie SQL?
Literal.objects.values('name').annotate(name_count=Count('name')).filter(name_count__gt=1)
?