首页 > 其他 > 详细

Django分表操作及FQ方法

时间:2019-01-16 00:43:13      阅读:227      评论:0      收藏:0      [点我收藏+]

聚合

aggregate(*args, **kwargs)

# 计算所有图书的平均价格
 from django.db.models import Avg
 Book.objects.all().aggregate(Avg(price))
#{‘price__avg‘: 34.35}

aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。如果你想要为聚合值指定一个名称,可以向聚合子句提供它。

Book.objects.aggregate(average_price=Avg(price))
#{‘average_price‘: 34.35}

如果你希望生成不止一个聚合,你可以向aggregate()子句中添加另一个参数。所以,如果你也想知道所有图书价格的最大值和最小值,可以这样查询:

from django.db.models import Avg, Max, Min
Book.objects.aggregate(Avg(price), Max(price), Min(price))
#{‘price__avg‘: 34.35, ‘price__max‘: Decimal(‘81.20‘), ‘price__min‘: Decimal(‘12.99‘)}
技术分享图片
  # 查询所有书籍的平均价格
    from django.db.models import Avg,Count,Max,Min
    ret=Book.objects.all().aggregate(Avg(price))
    # {‘price__avg‘: 202.896}
    # 可以改名字
    ret=Book.objects.all().aggregate(avg_price=Avg(price))
    # 统计平均价格和最大价格
    ret=Book.objects.all().aggregate(avg_price=Avg(price),max_price=Max(price))
    # 统计最小价格
    ret = Book.objects.all().aggregate(avg_price=Avg(price), min_price=Min(price))
    # 统计个数和平均价格
    ret = Book.objects.all().aggregate(avg_price=Avg(price), max_price=Max(price),count=Count(price))
    ret = Book.objects.all().aggregate(avg_price=Avg(price), max_price=Max(price),count=Count(nid))
    print(ret)
案例

 


 

Django分表操作及FQ方法

原文:https://www.cnblogs.com/wuzhengzheng/p/10274952.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!