首页 > 其他 > 详细

ORM分组与聚合

时间:2018-10-06 18:13:03      阅读:237      评论:0      收藏:0      [点我收藏+]

 

技术分享图片

技术分享图片

#########################聚合################################
#查询所有书籍的价格和 字典
ret = Book.objects.all().aggregate(price_sum=Sum("price"))
print(ret)

# 查询所有作者的平均年龄 字典
ret=Author.objects.all().aggregate(sum_age=Avg("age"))
print(ret)

 

#########################分组###############################
‘‘关键点:
    1.QuerySet对象.annotate()
  2.annotate进行分组统计,按前面values中的字段进行分组
  3.annotate()返回值依然是QuerySet对象
‘‘‘
# 查询每一个作者的名称以及出版过的书籍最高价格
ret = Author.objects.values("name").annotate(max_price = Max("book__price")).values("name","max_price")
print(ret)

# 查询每一个出版社的名称以及出过的书籍的平均价格
ret=Publish.objects.values("name").annotate(book_price=Avg("book__price")).values("name","book_price")
print(ret)

# 查询每一本书籍的作者个数
ret=Book.objects.values("title").annotate(count=Count("authors")).values("title","count")
print(ret)

 

ORM分组与聚合

原文:https://www.cnblogs.com/fangsheng/p/9747824.html

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