dj-28.top,django笔记

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: