我要在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
子句中?因为其余查询工作正常。
答案 0 :(得分:0)
从User对象而不是Sales对象开始。
我不知道您的模型结构,所以这有点猜测。
User.objects.annotate(
profits = Sum('sales__profit'),
status = Subquery(Status.objects.filter(username=OuterRef('user')).order_by('-date').values('status')[:1]).order_by()