在QuerySet上生成计数
from django.db.models import Count
# 对某个字段进行分组,并计算每组的数量
result = YourModel.objects.values('your_field').annotate(count=Count('your_field'))
在QuerySet上生成求和
from django.db.models import Sum
# 对某个字段进行分组,并计算每组的总和
result = YourModel.objects.values('your_field').annotate(sum=Sum('your_field'))
在QuerySet上生成平均值
from django.db.models import Avg
# 对某个字段进行分组,并计算每组的平均值
result = YourModel.objects.values('your_field').annotate(avg=Avg('your_field'))
在QuerySet上生成最大值和最小值
from django.db.models import Max, Min
# 对某个字段进行分组,并计算每组的最大值和最小值
result = YourModel.objects.values('your_field').annotate(
max=Max('your_field'),
min=Min('your_field')
)
上述例子中,values('your_field')用于指定分组的字段,而annotate()则用于生成聚合结果。这允许你在QuerySet级别上进行聚合操作,而不仅仅是在最终的aggregate()中。根据实际需求,你可以使用不同的聚合函数和字段。
转载请注明出处:http://www.zyzy.cn/article/detail/7150/Django