0

作成された各営業担当者の注文の総数を表示する集計があるとします。

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

それでは、100を超える注文が作成された営業担当者のみを選択するにはどうすればよいですか?注文テーブルにレコードが多すぎるため、コードを反復処理できません。

注:私は自分のカスタムSQLステートメントを書くことしか考えられません。私の同僚は、extra()メソッドを使用してカスタムwhereサブクエリを挿入するハックを思いつきましたが、これはSQL実行プラン用に最適化されていません。

4

1 に答える 1

1

注釈付きの値に名前を付けて、フィルターで使用します。

orders.values('sales_rep__username', 'sales_rep__email').annotate(order_count=Count('sales_rep')).filter(order_count__gt=100)
于 2012-07-25T23:28:50.393 に答える