假设我有一个聚合来显示每个创建的销售代表的订单总数:
orders.values('sales_rep__username', 'sales_rep__email').annotate(Count('sales_rep'))
那么我怎么去只选择销售代表有超过100个订单创建?鉴于订单表有太多记录来迭代代码。
注意:我只能考虑编写自己的自定义SQL语句,我的同事想出了一个hack来使用extra()方法在子查询中注入自定义,但是没有针对sql执行计划进行优化。 / p>
答案 0 :(得分:1)
命名带注释的值并在过滤器中使用它。
orders.values('sales_rep__username', 'sales_rep__email').annotate(order_count=Count('sales_rep')).filter(order_count__gt=100)