2012-07-25 76 views
0

滤波后可以说我有一个聚集,以显示创建的每个销售代表的订单总数:Django的聚集

orders.values('sales_rep__username', 'sales_rep__email').annotate(Count('sales_rep')) 

那我怎么去只能选择销售代表有超过100个订单产生的?鉴于订单表有太多的记录来遍历代码。

注意:我只能考虑编写我自己的自定义SQL语句,我的一个同事想出了一个使用extra()方法注入一个自定义的子查询,但没有针对sql执行计划进行优化的方法。

回答

1

命名注释的值并在过滤器中使用它。

orders.values('sales_rep__username', 'sales_rep__email').annotate(order_count=Count('sales_rep')).filter(order_count__gt=100)