从表中计算数据,不包括重复项

时间:2016-11-16 16:58:04

标签: python django count models

我需要计算表格中的元素。问题是我确实有一个解决方案,但我正在使用一个删除表中重复项的函数,然后我可以毫无问题地得到计数(但需要一段时间来处理)这是我的模型的一个例子/表:

enter image description here

如果我从中计算,我会得到以下结果: 3发货,4个分配,2个无状态,1个已加载。

我需要的是获得以下结果:2发货(忽略1个重复),1个分配(忽略3个重复),2个无状态(没有重复),1个已加载。

感谢您的时间,

1 个答案:

答案 0 :(得分:1)

如果您使用的是PostgreSQL,则可以使用以下内容来使用DISTINCT ON

Model.objects.order_by('field').dictinct('field').count()

如果您使用的是MySQL,可以使用

Model.objects.order_by('field').aggregate(count=Count('field', distinct=True))['count']

您需要order_by传递给不同的字段there is more information in the docs