美文网首页
分组查询、聚合查询

分组查询、聚合查询

作者: 钱塘 | 来源:发表于2017-08-18 19:10 被阅读31次

聚合查询

aggregate(args,*kwargs):

通过对QuerySet进行计算,返回一个聚合值的字典,aggregate()中每一个参数都指定一个包含在字典中的返回值,即在查询集上生成聚合。

   from django.db.models import Avg,Min,Sum,Max

   price1 = models.Book.objects.all().aggregate(Avg("price"))
   price2 = models.Book.objects.all().aggregate(Max("price"))
   price3 = models.Book.objects.all().aggregate(Sum("price"))
   price4 = models.Book.objects.all().aggregate(Min("price"))
   print(price1,price2,price3,price4)

分组查询

annotate(args,*kwargs):

可以通过计算查询结果中每一个对象所关联的对象集合,从而得出总计算值(也可以是平均值或总和),即为查询集的每一项生成聚合。

models.Book.objects.values("author__name").annotate(Sum("price"))

相关文章

网友评论

      本文标题:分组查询、聚合查询

      本文链接:https://www.haomeiwen.com/subject/mzoarxtx.html