dj-28.top,django笔记
学习笔记,仅供参考。
文章目录数据库的操作(CRUD操作)聚合查询未聚合分组聚合
数据库操作(CRUD操作)
聚合查询
聚合查询是指计算数据表中某个字段的统计量,例如,查找bookstore_book数据表中图书的平均价格,查询所有图书的总数量等等。
非分组聚合
不分组的汇总查询是为了指导所有数据的集中统计查询。
django.db.models导入的用法*
Entry.objects.aggregate(结果变量名=聚合函数( column ))
#聚合函数
#总和、平均值、计数、最大值、最小值
以下列格式返回结果变量名和值的字典:
{ 结果变量名:value}比如我们先来看看bookstore_author的数据表:
MySQL select * from bookstore _ author;
- - - -
id 姓名年龄电子邮件
- - - -
1 山羊 19 goatbishop@gamil.com
2 1033794241@qq.com 黄啸 10
5 小黑 12 xiaohei@gmail.com
6 xiaobai@gmail.com 小白 18
7 山羊哥 27 biggoat@gmail.com
- - - -
集合中的5行(0.00秒)在Django shell中键入以下命令:
从书店导入模型
从django.db.models导入*
结果=模型。author . objects . aggregate(myAvg=Avg( age ))
打印(平均年龄为:,结果[myAvg])
Print(result=,result)得到结果:
平均年龄为:17.2岁。
result={myAvg: 17.2}
分组聚合
分组是指对查询结果中每个对象关联的对象集进行计算,从而得到总值(也可以是平均值或总和),即查询集的每一项都生成一个聚合。
要分组:
首先通过使用查询结果Entry.object.values (column 1 , column 2 )找到要分组和聚合的列,然后通过返回query set . annotate(result variable name=aggregate function( column ))对结果进行分组和聚合
例如,我们在Django shell中键入以下代码:
从django.db.models导入计数
从。导入模型
#获取所有发布者的查询集查询集
pub_set=models。Book.objects.values(“发布”)
#根据出版社的查询分组,查询集合按出版社和计数的分组进行聚合
pub _ Count _ set=pub _ set . annotate(my Count=Count( pub ))
#返回查询集合
对于发布计数集中的项目:
Print (publisher:,item[pub], books have:,item[myCount])输出结果:
出版社:清华大学出版社有两本书。
出版社:机械工业出版社有以下书籍:1
出版社:人民邮电出版社有两本书。
出版社:黑山羊出版社有:1
转载请联系作者获得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。