Django框架之ORM的相关操作(二)
模型类:
class Commongity(models.Model): id=models.AutoField(primary_key=True) name=models.CharField(max_length=20) price=models.DecimalField(max_digits=5,decimal_places=2)
聚合查询
aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。
键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字段和聚合函数的名称自动生成出来的。
聚合查询主要用于计算平均值,最大值,最小值,和,数量
平均值:Avg
最大值:Max
最小值:Min
和:Sum
数量:Count
需要导入平均值,最大值,最小值等模块
from django.db.models import Avg,Max,Min,Sum,Count
(1)查询所有物品的平均价格
# 查询所有物品的平均价格 # price表示模型类中的字段名 good = models.Commongity.objects.all().aggregate(Avg('price'))
(2)查询所有物品的最大的价格
good = models.Commongity.objects.all().aggregate(Max('price'))
(3)同理:最小值,和,数量等都是同样的用法
aggregate()得出的结果是一个字典的类型返回,所以如果不指定键的名称,那么python自动分配名称,如果使用特定的名称,在aggregate(指定的键=Max('price')),如下所示:
good = models.Commongity.objects.all().aggregate(price_test=Max('price'))
===============================================================================
分组查询,分组查询与聚合查询
pass