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

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

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

How Do I Perform Group By Queries in Django?

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中文網其他相關文章!

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