Django進階Model篇007 - 聚集查詢和分組查詢


接着前面的例子,舉例聚集查詢和分組查詢例子如下:

1.查詢人民郵電出版社出了多少本書

>>> Book.objects.filter(publisher__name='人民郵電出版社').count()
>>> from django.db.models import *
>>> Book.objects.filter(publisher__name='人民郵電出版社').aggregate(Count('title'))

2.查詢陳吉出的書總價是多少

>>> Book.objects.filter(authors__name='陳吉').aggregate(Sum('price'))

3.查詢各個作者出的書的總價格是多少

>>> Book.objects.values('authors__name').annotate(Sum('price'))

4.查詢各個出版社最便宜的書價是多少

>>> Book.objects.values('publisher__name').annotate(Min('price'))

 

1.annotate(*args,**kwargs):可以為QuerySet中的每個對象添加注解。可以通過計算查詢結果中的每個對象所關聯的對象集合,從而得出總計值(也可以是平均值或總和,等等)。

用於分組查詢

2.aggregate(*args,**kwargs):通過對QuerySet進行計算,返回一個聚合值的字典,aggregate()中每個參數都可以指定一個包含在字典中的返回值。

用於聚合查詢

 

所在位置:django.db.models

1.Avg:返回所給字段的平均值

2.Count:根據所給關聯字段返回被關聯model的數量。

3.Max:返回所給字段的最大值

4.Min:返回所給字段的最小值

5.Sum:計算所給字段值的總和

 


***微信掃一掃,關注“python測試開發圈”,了解更多測試教程!***


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM