supposons que nous ayons un modèle dans django défini comme suit:
class Literal:
name = models.CharField(...)
...
Le champ Nom n'est pas unique et peut donc avoir des valeurs en double. Je dois accomplir la tâche suivante: Sélectionnez toutes les lignes du modèle qui ont au moins une valeur en double du name
champ.
Je sais comment le faire en utilisant SQL brut (ce n'est peut-être pas la meilleure solution):
select * from literal where name IN (
select name from literal group by name having count((name)) > 1
);
Alors, est-il possible de sélectionner ceci en utilisant django ORM? Ou une meilleure solution SQL?
Literal.objects.values('name').annotate(name_count=Count('name')).filter(name_count__gt=1)
?