Django-聚合查询
在Django中,可以使用aggregate()
函数来执行聚合查询。这个函数可以接受多个参数,每个参数对应一个聚合函数,如Sum
、Count
、Avg
等。
以下是一个使用aggregate()
进行聚合查询的例子:
假设你有一个模型Sales
,它记录了每笔销售的信息,包含字段amount
表示销售金额,date
表示销售日期。
from django.db.models import Sum, Count, Avg
from myapp.models import Sales
# 计算总销售额
total_sales = Sales.objects.aggregate(total=Sum('amount'))
# 计算销售数量
total_sales_count = Sales.objects.aggregate(count=Count('id'))
# 计算平均销售额
average_sales = Sales.objects.aggregate(avg=Avg('amount'))
aggregate()
函数返回一个字典,其中包含一个或多个键值对,键是你定义的聚合别名(如total
、count
、avg
),值是计算后得到的结果。
如果你想同时进行多个聚合查询,可以这样做:
from django.db.models import Sum, Count, Avg
from myapp.models import Sales
# 同时计算总销售额、销售数量和平均销售额
result = Sales.objects.aggregate(total=Sum('amount'), count=Count('id'), avg=Avg('amount'))
result
将包含total
、count
和avg
三个键,分别对应总销售额、销售数量和平均销售额的计算结果。
评论已关闭