【发布时间】:2022-11-09 09:00:09
【问题描述】:
给定一个存储用户交易的 Django 模型,我如何创建一个查询来返回每个用户的平均每月支出?
我当前的解决方案查询所有事务,迭代结果并使用字典计算每个用户的平均值。我知道有一种更有效的方法可以使用aggregate/annotate 进行查询,但不确定如何编写。
我更关心可读性而不是速度,因为数据库中的事务数量相对较少并且永远不会改变。
模型.py
Class Transactions(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey('User', on_delete=models.CASCADE)
amount = models.DecimalField(max_digits=100, decimal_places=2)
date = models.DateField()
【问题讨论】:
-
您使用的是哪个数据库?你想要有年份的月份,还是只是不考虑年份的月份的平均值?是 2022 年 3 月的平均值,还是所有年份 3 月交易的平均值?
-
我正在使用 mysql,我需要年份月份的平均值,例如(2022 年 3 月)
标签: python django django-models django-orm