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

ORM分组与聚合

时间:2018-10-06 18:35:48      阅读:416      评论:0      收藏:0      [点我收藏+]

标签:nbsp   年龄   ack   alt   分组   对象   名称   ffffff   count   

 

技术分享图片

技术分享图片

#########################聚合################################
#查询所有书籍的价格和 字典
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分组与聚合

标签:nbsp   年龄   ack   alt   分组   对象   名称   ffffff   count   

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

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