Django ORM - 聚合查询学习笔记
什么是聚合查询
聚合查询指的是将多行数据汇总成一个输出结果的查询方式。在 Django ORM 中,我们可以使用 aggregate()
方法进行聚合查询。
常用的聚合函数
在 Django ORM 中,常用的聚合函数有:
- Sum:对某个字段求和
- Count:统计某个字段出现的次数
- Max:求某个字段的最大值
- Min:求某个字段的最小值
- Avg:求某个字段的平均值
实例
创建测试数据
pythonCopy Codefrom django.db import models
class Book(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=5, decimal_places=2)
求图书价格总和
pythonCopy Codefrom django.db.models import Sum
total_price = Book.objects.aggregate(total_price=Sum('price'))['total_price']
print(total_price)
统计图书数量
pythonCopy Codefrom django.db.models import Count
book_count = Book.objects.aggregate(book_count=Count('id'))['book_count']
print(book_count)
求图书价格的平均值
pythonCopy Codefrom django.db.models import Avg
avg_price = Book.objects.aggregate(avg_price=Avg('price'))['avg_price']
print(avg_price)
求图书价格的最大值和最小值
pythonCopy Codefrom django.db.models import Max, Min
max_price = Book.objects.aggregate(max_price=Max('price'))['max_price']
min_price = Book.objects.aggregate(min_price=Min('price'))['min_price']
print(max_price, min_price)
总结
Django ORM 的聚合查询功能非常强大,可以帮助我们轻松地完成各种统计工作。以上是一些常用的聚合函数和实例,读者可以根据自己的需求进行相应的使用。