美文网首页
Django 聚合

Django 聚合

作者: shu_ke | 来源:发表于2018-06-05 22:56 被阅读22次

Django 聚合


  1. 在查询集上生成聚合(aggregate)
    aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。如果你想要为聚合值指定一个名称,可以向聚合子句提供它。
>>> Book.objects.aggregate(average_price=Avg('price'))
{'average_price': 34.35}
  1. 为查询集的每一项生成聚合(annotate)
    逐个对象的汇总结果可以由annotate()子句生成。当annotate()子句被指定之后,QuerySet中的每个对象都会被注上特定的值。
    这些注解的语法都和aggregate()子句所使用的相同。annotate()的每个参数都描述了将要被计算的聚合。比如,给图书添加作者数量的注解:
# Build an annotated queryset
>>> from django.db.models import Count
>>> q = Book.objects.annotate(Count('authors'))
# Interrogate the first object in the queryset
>>> q[0]
<Book: The Definitive Guide to Django>
>>> q[0].authors__count
2
# Interrogate the second object in the queryset
>>> q[1]
<Book: Practical Django Projects>
>>> q[1].authors__count
1

和使用 aggregate()一样,注解的名称也根据聚合函数的名称和聚合字段的名称得到的。你可以在指定注解时,为默认名称提供一个别名:

>>> q = Book.objects.annotate(num_authors=Count('authors'))
>>> q[0].num_authors
2
>>> q[1].num_authors
1

与 aggregate() 不同的是, annotate() 不是一个终止子句。annotate()子句的返回结果是一个查询集 (QuerySet);这个 QuerySet可以用任何QuerySet方法进行修改,包括 filter(), order_by(), 甚至是再次应用annotate()。

Django 聚合

相关文章

  • Django学习笔记

    1.Django Aggregation聚合 #平均值 from django.db.models import ...

  • Django 聚合

    Django 聚合 在查询集上生成聚合(aggregate)aggregate()是QuerySet 的一个终止子...

  • Django基础aggregate和annotate方法使用详解

    aggregate()方法详解aggregate的中文意思是聚合, 源于SQL的聚合函数。Django的aggre...

  • django查询之聚合函数

    Django 的django.db.models 模块提供以下聚合函数。警告SQLite 不能直接处理日期/时间字...

  • Django聚合函数

    Django在Django .db中提供了以下聚合函数。 1、Avg:返回平均值 classAvg(express...

  • django(7)聚合函数

    聚合函数: 所有的聚合函数都是放在django.db.models下面。 聚合函数不能够单独的执行,需要放在一些可...

  • Django Aggregation聚合

    在当今根据需求而不断调整而成的应用程序中,通常不仅需要能依常规的字段,如字母顺序或创建日期,来对项目进行排序,还需...

  • django orm分组聚合

    annotate分组 aggregate聚合 很简单就是查询一个数据集的某个字段的最大值、最小值、平均数、求和、计...

  • Centos7部署Sentry实战

    Sentry 由python开发,django为框架的跨平台多语言/框架的日志聚合平台,功能十分强悍。截至目前最新...

  • 项目错误跟踪告警平台sentry安装和接入php项目

    Sentry 由python开发,django为框架的跨平台多语言/框架的日志聚合平台,功能十分强悍。截至目前最新...

网友评论

      本文标题:Django 聚合

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