Django中ORM聚合查询aggregate和分组查询annotate

更新时间:2023-07-06 11:16:59 阅读: 评论:0

wlan英文怎么读Django中ORM聚合查询aggregate和分组查询annotate Django中ORM聚合查询aggregate和分组查询annotate
聚合查询-aggregatealleviated
聚合查询是使⽤aggregate()过滤器调⽤聚合函数.
聚合函数从dels引⼊gin是什么意思
shoushou聚合函数包括: Avg 平均,Count 数量,Max 最⼤,Min 最⼩,Sum 求和
from dels import Avg,Max,Min,Count,Sum
聚合查询返回的数据类型为字典类型
历届奥斯卡获奖影片
字典的格式为:
键的名称默认是属性名__聚合函数名⼩写,值就是计算出来的聚合值
cherish是什么意思如果需要⾃定义返回字典的键的名称,可以起别名
滑稽的意思
aggregate(别名 = 聚合函数名"属性名"))
clock是什么意思aggregate()是查询集QuerySet的⼀个终⽌⼦句,意思就是使⽤aggregate()之后的结果就不是查询集了,就不能使⽤查询集的⽅法了例如 : 计算所有图书的平均价格
from dels import Avg
...假装模型类都存在,我只写查询语句
res = Book.objects.aggregate(Avg("price"))
# Book为Django中模型类, price为模型类中的字段名
# 在使⽤aggregate()查询时all()可以省略
print(res)
******打印结果⼤致为
>>>{'price__avg':聚合值}
分组查询-annotate
分组查询⼀般也会⽤到聚合函数
from dels import Avg,Max,Min,Count,Sum
moh
分组查询后的返回值与聚合查询后的返回值不同
1. 分组后⽤values取值,则返回值是QuerySet数据类型⾥⾯为⼀个⼀个的字典
2. 分组后⽤values_list取值,则返回值是QuerySet数据类型⾥⾯为⼀个⼀个的元祖
annotate ⾥⾯放的是聚合函数四年级上册英语单词表
values或者values_list 放在annotate前⾯: 表⽰values或values_list是声明以什么字段分组,annotate执⾏分组
values或者values_list放在annotate后⾯: annotate表⽰直接以当前表的pk执⾏分组, values或者values_list表⽰查询那些字段, 并且要将annotate⾥的聚合函数起别名, 在values或者values_list⾥⾯写其别名
例: 统计每个出版社的最便宜的书的价格:
res = Publish.objects.values("name").annotate(in_price = Min("book__price"))
# 先以出版社的名字进⾏分组, 然后再使⽤聚合函数查询到每个出版社⾥⾯最便宜的书籍
例2: 查询出各个作者出的书的总价格
res = Author.objects.annotate(all= Sum("book_price")).values("name","all")

本文发布于:2023-07-06 11:16:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/168816.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   聚合   函数   分组   字典   计算   模型   返回值
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图