aggregate()方法详解
aggregate的中文意思是聚合, 源于SQL的聚合函数。Django的aggregate()方法作用是对一组值(比如queryset的某个字段)进行统计计算,并以字典(Dict)格式返回统计计算结果。django的aggregate方法支持的聚合操作有AVG / COUNT / MAX / MIN /SUM 等。
我们现在来看下几组实际使用案例。使用前别忘了import Avg, Max, Min或者Sum方法哦
from django.db.models import Avg, Max, Min
计算学生平均年龄, 返回字典。age和avg间是双下划线哦
Student.objects.all().aggregate(Avg(‘age’))
{ ‘age__avg’: 12 }
学生平均年龄,返回字典。all()不是必须的。
Student.objects.aggregate(Avg(‘age’))
{ ‘age__avg: 12’ }
计算学生总年龄, 返回字典。
Student.objects.aggregate(Sum(‘age’))
{ ‘age__sum’: 144 }
学生平均年龄, 设置字典的key
Student.objects.aggregate(average_age = Avg(‘age’))
{ ‘average_age’: 12 }
学生最大年龄,返回字典
Student.objects.aggregate(Max(‘age’))
{ ‘age__max’: 12 }