首頁 > 後端開發 > Python教學 > 如何在 Django 中執行 Group By 查詢?

如何在 Django 中執行 Group By 查詢?

DDD
發布: 2024-12-05 18:07:10
原創
259 人瀏覽過

How Do I Perform Group By Queries in Django?

Django 中的 Group By 查詢

背景

查詢 Django 模型時,可能會遇到需要執行 group by 操作的場景。嘗試像在 SQL 中那樣使用 .group_by() 會導致錯誤。

聚合功能

Django 提供了允許您執行複雜查詢的聚合方法,而不是使用 .group_by()涉及分組。具體來說,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() 的參數。
  • 請參閱 Django 關於 value() 的文檔, annotate() 和 Count 以了解更多資訊。

以上是如何在 Django 中執行 Group By 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板