zoukankan      html  css  js  c++  java
  • Django进阶Model篇007

    接着前面的例子,举例聚集查询和分组查询例子如下:

    1.查询人民邮电出版社出了多少本书

    >>> Book.objects.filter(publisher__name='人民邮电出版社').count()
    >>> from django.db.models import *
    >>> Book.objects.filter(publisher__name='人民邮电出版社').aggregate(Count('title'))

    2.查询陈吉出的书总价是多少

    >>> Book.objects.filter(authors__name='陈吉').aggregate(Sum('price'))

    3.查询各个作者出的书的总价格是多少

    >>> Book.objects.values('authors__name').annotate(Sum('price'))

    4.查询各个出版社最便宜的书价是多少

    >>> Book.objects.values('publisher__name').annotate(Min('price'))

    1.annotate(*args,**kwargs):可以为QuerySet中的每个对象添加注解。可以通过计算查询结果中的每个对象所关联的对象集合,从而得出总计值(也可以是平均值或总和,等等)。

    用于分组查询

    2.aggregate(*args,**kwargs):通过对QuerySet进行计算,返回一个聚合值的字典,aggregate()中每个参数都可以指定一个包含在字典中的返回值。

    用于聚合查询

    所在位置:django.db.models

    1.Avg:返回所给字段的平均值

    2.Count:根据所给关联字段返回被关联model的数量。

    3.Max:返回所给字段的最大值

    4.Min:返回所给字段的最小值

    5.Sum:计算所给字段值的总和


    ***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***
  • 相关阅读:
    ETF上线技术要素
    oracle修改用户的schema
    list
    交易系统分类OMS/EMS
    类的大小2
    webpack5教程
    vue配置stylelint教程
    提高国内访问 GitHub 的速度的 9 种方案
    git常见的操作
    img 图像底部留白的原因以及解决方法
  • 原文地址:https://www.cnblogs.com/guanfuchang/p/6491162.html
Copyright © 2011-2022 走看看