ホームページ >バックエンド開発 >Python チュートリアル >Django で Group By クエリを実行するにはどうすればよいですか?

Django で Group By クエリを実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-05 18:07:10239ブラウズ

How Do I Perform Group By Queries in Django?

Django のグループ化クエリ

バックグラウンド

Django モデルをクエリするとき、グループ化操作を実行する必要があるシナリオが発生する場合があります。 。 SQL と同じように .group_by() を使用しようとすると、エラーが発生します。

集計機能

.group_by() を使用する代わりに、Django には複雑なクエリを実行できる集計メソッドが用意されています。グループ化を伴う。具体的には、Count は、特定のフィールドの出現数を数えるのに役立ちます。

結果を指定ごとにグループ化し、出現数をカウントするには、次のコードを使用します。

from django.db.models import Count

result = (Members.objects
    .values('designation')
    .annotate(dcount=Count('designation'))
    .order_by()
)

このクエリは次の SQL ステートメントに似ています:

SELECT designation, COUNT(designation) AS dcount
FROM members GROUP BY designation

Django クエリの出力は次のようになります。次の形式で:

[{'designation': 'Salesman', 'dcount': 2}, 
 {'designation': 'Manager', 'dcount': 2}]

追加メモ

  • 正しい並べ替えを保証するために order_by() を含めます。
  • 結果に複数のフィールドを含めるには、次のように渡します。 .values().
  • values() に関する Django のドキュメントを参照してください。詳細については、annotate() および Count を参照してください。

以上がDjango で Group By クエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。