我有两种型号:
class FirstModel(models.Model():
some_fields...
class SecondModel(models.Model):
date = models.DateTimeField()
value = models.IntegerField()
first_model = models.ForeignKey(to="FirstModel", on_delete=models.CASCADE)
我需要执行以下查询:
select sum(value) from second_model
inner join (
select max(date) as max_date, id from second_model
where date < NOW()
group by id
) as subquery
on date = max_date and id = subquery.id
我想我可以用Subquery
subquery = Subquery(SecondModel.objects.values("first_model")
.annotate(max_date=Max("date"))
.filter(date__lt=Func(function="NOW")))
和F() expressions但它只能解析模型字段,不能解析子查询
问题:
是否可以只使用Django ORM实现
另外,我是否可以通过注释该值来计算第一个模型中所有值的第二个模型的值之和?像
FirstModel.objects.annotate(sum_values=sum_with_inner_join_query).all()
目前没有回答
相关问题 更多 >
编程相关推荐