[英]Django ORM - Group by and annotate with subquery
我在 Django ORM 中尝试做的事情如下:
我的查询集如下所示:
Sales.objects.values('user').annotate(
profits = Sum('profit'),
status = Subquery(Status.objects.filter(username=OuterRef('user')).order_by('-date').values('status')[:1]
).order_by()
如果我检查此查询集的 SQL 查询,我可以看到status
字段已添加到group by
子句中。 但是这个查询无法执行。 如何防止 Django 将此添加到group by
子句? 因为查询的 rest 工作正常。
从用户 object 而不是销售 object 开始。
我不知道你的 model 结构,所以这有点猜测。
User.objects.annotate(
profits = Sum('sales__profit'),
status = Subquery(Status.objects.filter(username=OuterRef('user')).order_by('-date').values('status')[:1]).order_by()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.