在子查询中注释聚合

aggregate on annotate inside subquery

提问人:yalda 提问时间:11/2/2023 更新时间:11/2/2023 访问量:25

问:

return queryset.annotate(
            sum_amount=Subquery(
                RI.objects.filter(r_queryset=OuterRef('pk'))
                .annotate(
                    sum_amount=Sum(
                        Subquery(
                            RII.objects.filter(
                                ri=OuterRef('pk'), order_type=order_type.value
                            )
                            .annotate(transaction_amount=F("quantity") * F(price")
                            )
                            .values('transaction_amount')[:1],
                        )
                    )
                )
                .values('sum_amount')[:1],
            ),
        ).values(
            "sum_amount",
        )

在我的问题中,每个 RI 都有多个 RII,我想获得所有这些 RII 的总和,但它给了我其中一个的值。 我的问题是我无法在子查询中聚合注释

聚合 django-queryset django-orm 注解

评论

0赞 willeM_ Van Onsem 11/2/2023
是否可以共享模型以及您打算计算/确定的内容?现在很难知道是否有必要使用子查询。这里的模型是什么?queryset

答: 暂无答案