聚合后的django过滤

时间:2012-07-25 23:13:03

标签: django filter aggregation

假设我有一个聚合来显示每个创建的销售代表的订单总数:

orders.values('sales_rep__username', 'sales_rep__email').annotate(Count('sales_rep'))
那么我怎么去只选择销售代表有超过100个订单创建?鉴于订单表有太多记录来迭代代码。

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

1 个答案:

答案 0 :(得分:1)

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

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