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

posted @ 2019-05-26 18:56  black娃  阅读(320)  评论(0编辑  收藏  举报