当前位置: 移动技术网 > IT编程>脚本编程>Python > django数据查询之聚合查询和分组查询

django数据查询之聚合查询和分组查询

2018年12月03日  | 移动技术网IT编程  | 我要评论

微软设备健康助手,南京到杭州火车票价,系统封装教程

 <1> aggregate(*args,**kwargs):

通过对queryset进行计算,返回一个聚合值的字典。aggregate()中每一个参数都指定一个包含在字典中的返回值。即在查询集上生成聚合。

 1 from django.db.models import avg,min,sum,max
 2 
 3 从整个查询集生成统计值。比如,你想要计算所有在售书的平均价钱。django的查询语法提供了一种方式描述所有
 4 图书的集合。
 5 
 6 >>> book.objects.all().aggregate(avg('price'))
 7 {'price__avg': 34.35}
 8 
 9 aggregate()子句的参数描述了我们想要计算的聚合值,在这个例子中,是book模型中price字段的平均值
10 
11 aggregate()是queryset 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的
12 标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。如果你想要为聚合值指定
13 一个名称,可以向聚合子句提供它:
14 >>> book.objects.aggregate(average_price=avg('price'))
15 {'average_price': 34.35}
16 
17 
18 如果你也想知道所有图书价格的最大值和最小值,可以这样查询:
19 >>> book.objects.aggregate(avg('price'), max('price'), min('price'))
20 {'price__avg': 34.35, 'price__max': decimal('81.20'), 'price__min': decimal('12.99')}

 

<2> annotate(*args,**kwargs):

 可以通过计算查询结果中每一个对象所关联的对象集合,从而得出总计值(也可以是平均值或总和),即为查询集的每一项生成聚合

 参考来源:

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网