今天的主要讲解的主题的是关于聚合查询,聚合查询也是分为整体查询和分组查询,接下来我们仔细讲解。

1.什么是聚合查询?


聚合查询就是对查询出的结果进行统计,最常见的聚合函数有:

sum(列名) 求和     

max(列名) 最大值     

min(列名) 最小值     

avg(列名) 平均值


2.Django聚合查询的方法:


聚合查询也是分为整体查询和分组查询,因此我们分为两个例题进行示范操作:


整体查询语法:

1)导入聚合函数:from django.db.models import 聚合函数

2)整体查询:类名.objects.aggregate(结果变量名=聚合函数(‘列名’))


示例:

查询数据库中有几条数据:

from django.db.models import count

Book.objects.aggregate(id_count=count(‘id’))

分组查询语法:


1)导入聚合函数:from django.db.models import 聚合函数

2)对需要分组的数据进行查询:变量名=类名.objects.values(‘列名’)

3)分组查询:变量名.objects.annotate(结果变量名=聚合函数(‘列名’))


示例:

查询出不同出版社,各自的数量:

from django.db.models import count

books=Book.objects.values(‘pub’)

books.objects.annotate(id_count=count(‘id’))