年份 = Query.objects.filter(创建时间__year=2020)
聚合函数同样也是SQL携带的一种快速查询的方式,因为聚合函数在数据库层面进行数据筛选,效率会比传入Django后在做筛选高不少。
聚合函数主要通过aggregate
和annotate
方法进行查找。
aggregate:返回使用聚合函数后的字段和值。(如果需要整体字段的聚合函数则使用此方法)
annotate:在原来模型字段的基础之上添加一个使用了聚合函数的字段,并且在使用聚合函数的时候,会使用当前这个模型的主键进行分组(group by)。(如果需要局部字段聚合,则使用此方法)
下列我们用聚合函数来区分aggregate
与annotate
的不同
这是我用到的数据库,聚合函数需要从django.db.models
中导入,如下
from django.db.models import Avg, Count, Max, Min, Sum
查询法语为:聚合函数(查询条件)