Python 在一个queryset django中计算多个表字段的不同数字
我需要从一个包含一个queryset的表中计算每个列(本例中为aa、bb、cc)的不同值之和。如果我这样做:Python 在一个queryset django中计算多个表字段的不同数字,python,django,Python,Django,我需要从一个包含一个queryset的表中计算每个列(本例中为aa、bb、cc)的不同值之和。如果我这样做: x = a_table.objects.filter(m = m_number) .annotate(a=Count('aa', distinct=True)) .annotate(b=Count('bb', distinct=True)) .annotate(c=Count('cc', distinct=True)) .values_list('a', 'b', 'c') 当我打印x
x = a_table.objects.filter(m = m_number)
.annotate(a=Count('aa', distinct=True))
.annotate(b=Count('bb', distinct=True))
.annotate(c=Count('cc', distinct=True))
.values_list('a', 'b', 'c')
当我打印x时,我得到:
<QuerySet [(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1)]>
x=a\u table.objects.values(fieldname).annotation(the\u count=count(fieldname))
考虑到a\u table是您的模型类谢谢@0decimal()我的表可能有10列。我只需要计算3列中不同值的总计数。如果我在3个问题中这样做,请这样回答:谢谢@0decimal()我的表可能有10列。我只需要计算3列不同值的总计数。如果我在3个单独的查询集中这样做:a=a_table.objects.filter(m=m_number)、values('aa')、distinct().count()等等,就可以了。现在我需要把三个查询集放到一个查询集中。我该怎么做?您上面的注释仍然需要编写3个单独的查询集,对吗?x=a_table.objects.annotate(Count('aa')、Count('bb')、Count('cc'))
试试看。x=a_table.objects.values(fieldname)。annotate(the_Count=Count(fieldname))
考虑到a_table是您的模型类谢谢@0decimal()我的表可能有10列。我只需要计算3列中不同值的总计数。如果我在3个问题中这样做,请这样回答:谢谢@0decimal()我的表可能有10列。我只需要计算3列不同值的总计数。如果我在3个单独的查询集中这样做:a=a_table.objects.filter(m=m_number)、values('aa')、distinct().count()等等,就可以了。现在我需要把三个查询集放到一个查询集中。我该怎么做?上面的注释仍然需要编写3个单独的查询集,对吗?x=a_table.objects.annotate(Count('aa')、Count('bb')、Count('cc'))
试试看。
a=4
b=4
c=4