• 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测试开发圈”,了解更多测试教程!***
  • 相关阅读:
    CF827D Best Edge Weight
    克鲁斯卡尔重构树总结
    模拟赛 提米树 题解 (DP+思维)
    luogu P4781 【模板】拉格朗日插值
    luogu P5826 【模板】子序列自动机
    子序列自动机
    luogu P1368 工艺 /【模板】最小表示法
    最小表示法
    SP1812 LCS2
    FZOJ 3602 T2
  • 原文地址:https://www.cnblogs.com/guanfuchang/p/6491162.html
Copyright © 2020-2023  润新知