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)同理:最小值,和,数量等都是同样的用法

Django框架之ORM的相关操作(二)

aggregate()得出的结果是一个字典的类型返回,所以如果不指定键的名称,那么python自动分配名称,如果使用特定的名称,在aggregate(指定的键=Max('price')),如下所示:

good = models.Commongity.objects.all().aggregate(price_test=Max('price'))

Django框架之ORM的相关操作(二)

===============================================================================

分组查询,分组查询与聚合查询

pass

上一篇:oracle中sequence(自增序号)的用法


下一篇:Django框架之ORM的相关操作之一对一关系(四)