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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-11 02:22:09594ブラウズ

How to Perform GROUP BY Queries in Django?

Django でクエリによるグループ化を実現するには?

Django では、モデルに対してクエリによるグループ化を実行するには、 ORM の集約機能。これは、values() メソッドと annotate() メソッドを利用することで実現されます。

次の例を考えてみましょう:

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

クエリの結果は、それぞれがグループを表す辞書オブジェクトのリストになります。例:

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

結果に複数のフィールドを含めるには、それらのフィールドを引数として value():

    .values('designation', 'first_name', 'last_name')

参照:

に追加するだけです。
  • Django ドキュメント:values()、annotate()、およびCount
  • Django ドキュメント: 集計、特にデフォルトの順序付けまたは order_by()
との対話に関するセクション

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

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