
Django 中的 Group By 查詢
背景
查詢 Django 模型時,可能會遇到需要執行 group by 操作的場景。嘗試像在 SQL 中那樣使用 .group_by() 會導致錯誤。
聚合功能
Django 提供了允許您執行複雜查詢的聚合方法,而不是使用 .group_by()涉及分組。具體來說,Count 對於計算特定欄位的出現次數非常有用。
範例
要依指定將結果分組並計算出現次數,您可以使用下列程式碼:
1 2 3 4 5 6 7 | from django.db.models import Count
result = (Members.objects
.values( 'designation' )
.annotate(dcount= Count ( 'designation' ))
.order_by()
)
|
登入後複製
此查詢類似下列SQL 語句:
1 2 | SELECT designation, COUNT (designation) AS dcount
FROM members GROUP BY designation
|
登入後複製
Django查詢的輸出將格式為:
1 2 | [{ 'designation' : 'Salesman' , 'dcount' : 2},
{ 'designation' : 'Manager' , 'dcount' : 2}]
|
登入後複製
附加說明
- 包含 order_by() 以確保正確排序。
- 要在結果中包含多個字段,請傳遞它們作為 .values() 的參數。
- 請參閱 Django 關於 value() 的文檔, annotate() 和 Count 以了解更多資訊。
以上是如何在 Django 中執行 Group By 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!