Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一个queryset django中计算多个表字段的不同数字_Python_Django - Fatal编程技术网

Python 在一个queryset django中计算多个表字段的不同数字

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

我需要从一个包含一个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时,我得到:

<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