orm sum
时间: 2023-07-24 11:20:57 浏览: 145
orm介绍
在 Django ORM 中,sum() 函数可以用于对某个模型的查询集中的某个字段进行求和操作。sum() 函数可以作为 annotate() 方法的参数来实现分组求和,或者作为 aggregate() 方法的参数来实现总体求和。
以下是两个使用 sum() 函数的例子:
1. 分组求和:统计每个作者的书籍价格总和
```python
from django.db.models import Sum
books = Book.objects.values('author').annotate(total_price=Sum('price'))
```
在这个例子中,我们使用了 values() 方法来指定要查询的字段,然后使用了 annotate() 方法来添加一个名为 total_price 的注释,该注释使用 Sum('price') 函数来对每个作者的书籍价格进行求和操作。
2. 总体求和:统计所有书籍的价格总和
```python
from django.db.models import Sum
total_price = Book.objects.aggregate(total_price=Sum('price'))
```
在这个例子中,我们使用了 aggregate() 方法来进行总体求和,将 Sum('price') 函数作为参数传递给该方法,以对所有书籍的价格进行求和。该方法返回一个字典,其中键为 total_price,值为所有书籍的价格总和。
阅读全文