Sam & Max » group by http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Compter les doublons avec l’ORM Django 11 http://sametmax.com/compter-les-doublons-avec-lorm-django/ http://sametmax.com/compter-les-doublons-avec-lorm-django/#comments Fri, 22 Nov 2013 08:28:48 +0000 http://sametmax.com/?p=7761 GROUP BY et HAVING sont assez peu intuitifs en SQL, et encore moins avec l'ORM Django.]]> GROUP BY et HAVING sont assez peu intuitifs en SQL, et encore moins avec l’ORM Django.

Voici donc la recette pour compter le nombre d’occurrences des valeurs d’un champ, pour par exemple trouver les doublons.

En supposant une table Massage avec une valeur finish :

ID         FINISH
1          manuel
2          oral
3          oral
4          oral
>>> Massage.objects.values('finish').annotate(count=Count('id'))
{'manuel': 2, 'oral': '9': 'rectal': 1, 'paradoxal': -1}

Pour obtenir uniquement les doublons, il suffit de filtrer pour avoir les valeurs qui ont un count plus grand que 1 :

Massage.objects.values('finish').annotate(count=Count('id')).filter(count__gt=1)
]]>
http://sametmax.com/compter-les-doublons-avec-lorm-django/feed/ 11