Django 中的分組查詢
無需修補 Django 的查詢集 API,您就可以使用 ORM 的聚合功能實現分組功能。
使用值和Count
要按特定欄位對結果分組併計算每個組的出現次數,請使用以下語法:
from django.db.models import Count
result = (Members.objects
.values('designation')
.annotate(dcount=Count('designation'))
.order_by()
)
這將傳回一個查詢集,其中結果已分組按指定欄位以及每個指定的計數。輸出將是一個字典列表,每個字典包含名稱和 dcount(名稱計數)。
在結果中包含多個欄位
要包含多個欄位在結果中,只需將它們作為參數新增至values()函數:
.values('designation', 'first_name', 'last_name')
參考文獻
- [Django文件:values()](https://docs.djangoproject.com/en/ stable/ref/models/querysets/#values)
- [Django 文件: annotate()](https://docs.djangoproject.com/en/stable/ref/models/querysets/#annotate)
- [Django 文件:計數](https://docs.djangoproject.com /en/stable/ref/models/lookups/#count)
- [Django文件:聚合](https://docs.djangoproject.com/en/stable/topics/db/aggregation/)
- [Django 文件:與預設排序或order_by() 的互動](https:/ /docs. djangoproject.com/en/stable/topics/db/aggregation/#interaction-with-default-ordering-or-orderby)
以上是如何使用聚合在 Django 中執行 Group By 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!