group by – Sam & Max http://sametmax.com Du code, du cul Wed, 23 Dec 2020 13:35:02 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 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 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 7761