Sam & Max: Python, Django, Git et du cul » group by http://sametmax.com Deux dĂ©veloppeurs en vadrouille qui se sortent les doigts du code Wed, 05 Feb 2014 14:20:37 +0000 en hourly 1 http://wordpress.org/?v=3.3.1 Compter les doublons avec l’ORM Django 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 Sam 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)

flattr this!

]]>
http://sametmax.com/compter-les-doublons-avec-lorm-django/feed/ 11