zoukankan      html  css  js  c++  java
  • django数据查询之聚合查询和分组查询

     <1> aggregate(*args,**kwargs):

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

     1 from django.db.models import Avg,Min,Sum,Max
     2 
     3 从整个查询集生成统计值。比如,你想要计算所有在售书的平均价钱。Django的查询语法提供了一种方式描述所有
     4 图书的集合。
     5 
     6 >>> Book.objects.all().aggregate(Avg('price'))
     7 {'price__avg': 34.35}
     8 
     9 aggregate()子句的参数描述了我们想要计算的聚合值,在这个例子中,是Book模型中price字段的平均值
    10 
    11 aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的
    12 标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。如果你想要为聚合值指定
    13 一个名称,可以向聚合子句提供它:
    14 >>> Book.objects.aggregate(average_price=Avg('price'))
    15 {'average_price': 34.35}
    16 
    17 
    18 如果你也想知道所有图书价格的最大值和最小值,可以这样查询:
    19 >>> Book.objects.aggregate(Avg('price'), Max('price'), Min('price'))
    20 {'price__avg': 34.35, 'price__max': Decimal('81.20'), 'price__min': Decimal('12.99')}

    <2> annotate(*args,**kwargs):

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

     参考来源:https://www.cnblogs.com/liuwchao/articles/9831942.html

  • 相关阅读:
    《图像处理实例》 之 Voronoi 图
    《图像处理实例》 之 Voronoi 图
    《图像处理实例》 之 Voronoi 图
    Docker 1.13.0 详细更新日志
    Docker 1.13.0 详细更新日志
    Docker 1.13.0 详细更新日志
    Docker 1.13.0 详细更新日志
    Ubuntu上安装VMware tools
    Ubuntu上安装VMware tools
    Casper CBC 简要说明
  • 原文地址:https://www.cnblogs.com/jiarenanhao/p/9983882.html
Copyright © 2011-2022 走看看