码迷,mamicode.com
首页 > 其他好文 > 详细

Django分表操作及FQ方法

时间:2019-01-16 01:07:06      阅读:408      评论:0      收藏:0      [点我收藏+]

标签:聚合   iter   one   isp   价格   model   自动生成   操作   price   

聚合

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方法

标签:聚合   iter   one   isp   价格   model   自动生成   操作   price   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!