首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)

查询集参考中列出了聚合函数的列表。 aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的标识符,值是计算出来的聚合值。...例如,我们可以查询每个作者,注上它写的所有书(以及合著的书)一共有多少页(注意我们如何使用 ‘book’来指定Author -> Book的多对多的反转关系): >>> Author.objects.annotate...不是在原始的 QuerySet返回结果中对每个对象中添加注解,而是根据定义在values() 子句中的字段组合对先结果进行唯一的分组,再根据每个分组算出注解值, 这个注解值是根据分组中所有的成员计算而得的...')) 在这个例子中,作者会按名称分组,所以你只能得到某个唯一的作者分组的注解值。...但是上面那样做是行不通的。这是因为默认排序项中的 name也是一个分组项,所以这个查询会根据非重复的 (data, name) 进行分组,而这并不是你本来想要的结果。

1.7K30

Python后端基础面试题

,分组,F,Q 聚合查询 aggregate()是QuerySet 的一个终止子句,它返回一个包含一些键值对的字典。...annotate()为调用的QuerySet中每一个对象都生成一个独立的统计值(统计方法用聚合函数),annotate前面的values作为分组的依据,不写values默认按照id来分组 models.Book.objects.values..., 三部分为 Model、Template 和 View Model (模型): 负责业务对象与数据库的对象(ORM) Template (模版): 负责如何把页面展示给用户...view 处理, view 再调用相应的 Model 和 Template 10.python如何进行内存管理的,内存泄漏的原因,怎么避免 内存管理: 1.引用计数:赋值计数器+1,删除-1...>称作惰性匹配 19.常用正则 \d任意数字 \w数字字母下划线 \s任意空白符 .非换行符的任意字符 [^]非字符组的所有 ()分组 {n}出现n次 {n,}至少n次 {n,m}n到m次 ?

88130
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django的聚合查询与原生操作

    聚合查询 ​ 聚合查询指的是对一个数据表中的一个字段的数据进行部分或者全部进行统计查询,例如查某个表中的平均价格、查询总价格。 反正尽量用ORM吧,这只是一种暂缓之计!...聚合查询可以分为 整表聚合 分组聚合 整表聚合 ​ 不带分组的聚合查询是指将全部的数据进行集中统计查询。...结果变量名:值} 分组聚合 ​ 分组聚合是指通过计算查询结果中每一个对象所关联的对象集合,从而得出总计值,即为查询集的每一项生成聚合。...通过先用查询结果Mymodels.objects.values查找要分组聚合的列 from django.db.models import * from apps.monitor.models import...方法分组聚合得到分组结果 QuerySet.annotate(结果变量名=聚合函数('列')) print(select.annotate(myCount=Count('id'))) 分组聚合的返回值为

    68920

    Django ORM 多表操作(二)

    取值,则返回值是 QuerySet 数据类型里面为一个个元组 注意:MySQL 中的 limit 相当于 ORM 中的 QuerySet 数据类型的切片,annotate 里面放聚合函数 values...里的聚合函数起别名,在 values 或者 values_list 里写其别名。...总结 使用annotate()分组,括号内写聚合函数 values在前面,表示SQL中group by的字段 values在后面,表示取出 字段 filter在前面,表示SQL中where条件 filter...在后面,表示SQL中having过滤 单表分组查询示例 格式:表名.objects.values('group by 的字段').annotate(聚合函数('统计的字段')) # select count...那么查询的时候输出的还是对应的字符串(男,女,其他) 注意:对于choices参数我们该如何选择数据类型?

    1.1K20

    【Django】 开发:数据库操作和后台管理

    ,都要使用聚合查询 不带分组聚合 不带分组的聚合查询是指导将全部数据进行集中统计查询 聚合函数【需要导入】: 导入方法: from django.db.models import * 聚合函数: Sum...分组聚合是指通过计算查询结果中每一个对象所关联的对象集合,从而得出总计值 (也可以是平均值或总和),即为查询集的每一项生成聚合。...语法: QuerySet.annotate (结果变量名 = 聚合函数 (‘列’)) 用法步骤: 通过先用查询结果 MyModel.objects.values 查找查询要分组聚合的列 MyModel.objects.values...方法分组聚合得到分组结果 QuerySet.annotate (名 = 聚合函数 (‘列’)) 返回 QuerySet 结果集,内部存储结果的字典 如: pub_count_set = pub_set.annotate...QuerySet pub_set = models.Book.objects.values('pub') # 根据出版社查询分组,出版社和Count的分组聚合查询集合 pub_count_set

    4.1K40

    django orm(2)

    聚合函数 这里的聚合函数和SQL里的聚合函数对应,在使用前需要先进行模块的导入: from django.db.models import Max,Min,Sum,Count,Avg 常用的聚合函数有求最大值...分组查询主要应用在比如查询班级中男生、女生的个数等需要先分组再查询的场景,分组操作使用的annotate内部调用的是SQL语句group by,分着查询需要和聚合函数联用。...按谁分组,models就是谁,annotaten内部传入筛选的条件。...[{'name': '乖,摸摸头', 'author_num': 2}]> 4.查询各个作者出的书的总价格,打印作者名字,总价格 关键字:annotate 借助于聚合函数,Django中models后面点什么就按什么分组...# 如何自定义字段类型 class MyCharField(models.Field): def __init__(self,max_length,*args,**kwargs):

    1.2K21

    Django模板标签regroup方法对对象进行分组

    在使用 Django 开发时,有时候我们需要在模板中按对象的某个属性分组显示一系列数据。例如博客文章按照时间归档分组显示文章列表,或者需要按日期分组显示通知(例如知乎)的通知列表。...被循环的元素包含两个属性: grouper,就是分组依据的属性值,例如这里的 ‘India’、‘Japan’ list,属于该组下原列表中元素 博客文章按日期归档 官方的例子是分组一个列表,且列表的元素是一个字典...但 regroup 不仅仅限于分组这样的数据结构,只要是一个类列表对象都可以分组,例如一个 QuerySet 对象。...只要分好组后,就可以任意控制模板显示的内容了,例如你不想循环显示全部文章标题,只想显示各个月份下的文章数量,稍微修改一下模板即可: {% regroup post_list by created_time.year...总结 regroup 模板标签对于需要层级分组显示的对象十分有用。但有一点需要注意,被分组的对象一定要是已经有序排列的,否则 regroup 无法正确地分组。

    76320

    Django学习笔记之ORM多表操作

    # 与Author表建立多对多的关系,ManyToManyField可以建在两个模型中的任意一个,自动创建第三张表 authors=models.ManyToManyField(to='Author...              .filter(name="人民出版社")               .values_list("bookList__title","bookList__price") 聚合查询与分组查询...键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。如果你想要为聚合值指定一个名称,可以向聚合子句提供它。...总结 :跨表分组查询本质就是将关联表join成一张表,再按单表的思路进行分组查询。...authors__name="egon")) 等同于下面的SQL WHERE 子句: WHERE name ="yuan" OR name ="egon" 你可以组合& 和|  操作符以及使用括号进行分组来编写任意复杂的

    2.8K40

    Django模板标签regroup的妙用

    例如博客文章按照时间归档分组显示文章列表(示例效果请看我的博客的归档页面),或者需要按日期分组显示通知(例如知乎)的通知列表。...被循环的元素包含两个属性: grouper,就是分组依据的属性值,例如这里的 ‘India’、‘Japan’ list,属于该组下原列表中元素 博客文章按日期归档 官方的例子是分组一个列表,且列表的元素是一个字典...但 regroup 不仅仅限于分组这样的数据结构,只要是一个类列表对象都可以分组,例如一个 QuerySet 对象。...只要分好组后,就可以任意控制模板显示的内容了,例如你不想循环显示全部文章标题,只想显示各个月份下的文章数量,稍微修改一下模板即可: {% regroup post_list by created_time.year...总结 regroup 模板标签对于需要层级分组显示的对象十分有用。但有一点需要注意,被分组的对象一定要是已经有序排列的,否则 regroup 无法正确地分组。

    1.1K60
    领券