校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Django 聚合函數的具體使用

Django 聚合函數的具體使用

熱門標簽:富錦商家地圖標注 池州外呼調研線路 沈陽外呼系統呼叫系統 外呼系統哪些好辦 沈陽防封電銷卡品牌 沈陽人工外呼系統價格 武漢外呼系統平臺 江西省地圖標注 如何申請400電話費用

前言

orm模型中的聚合函數跟MySQL中的聚合函數作用是一致的,也有像Sum、Avg、Count、Max、Min,接下來我們逐個介紹

聚合函數

所有的聚合函數都是放在django.db.models下面。并且聚合函數不能夠單獨的執行,聚合函數是通過aggregate方法來實現的。在說明聚合函數的用法的時候,都是基于以下的模型對象來實現的。

class Author(models.Model):
     """作者模型"""
     name = models.CharField(max_length=100)
     age = models.IntegerField()
     email = models.EmailField()

     class Meta:
         db_table = 'author'


 class Publisher(models.Model):
     """出版社模型"""
     name = models.CharField(max_length=300)

     class Meta:
         db_table = 'publisher'


 class Book(models.Model):
     """圖書模型"""
     name = models.CharField(max_length=300)
     pages = models.IntegerField()
     price = models.FloatField()
     rating = models.FloatField()
     author = models.ForeignKey(Author,on_delete=models.CASCADE)
     publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)

     class Meta:
         db_table = 'book'


 class BookOrder(models.Model):
     """圖書訂單模型"""
     book = models.ForeignKey("Book",on_delete=models.CASCADE)
     price = models.FloatField()

     class Meta:
         db_table = 'book_order'

Avg

Avg:求平均值。比如想要獲取所有圖書的價格平均值。那么可以使用以下代碼實現。

 from django.db.models import Avg
 result = Book.objects.aggregate(Avg('price'))
 print(result)

以上的打印結果是:

 {"price__avg":23.0}

其中price__avg的結構是根據field__avg規則構成的。如果想要修改默認的名字,那么可以將Avg賦值給一個關鍵字參數。示例代碼如下:

 from django.db.models import Avg
 result = Book.objects.aggregate(my_avg=Avg('price'))
 print(result)

以上的打印結果為

 {"my_avg":23} 

Count

Count:獲取指定的對象的個數。示例代碼如下:

 from django.db.models import Count
 result = Book.objects.aggregate(book_num=Count('id'))

以上的result將返回Book表中總共有多少本圖書。

Count類中,還有另外一個參數叫做distinct,默認是等于False,如果是等于True,那么將去掉那些重復的值。比如要獲取作者表中所有的不重復的郵箱總共有多少個,那么可以通過以下代碼來實現:

from djang.db.models import Count
result = Author.objects.aggregate(count=Count('email',distinct=True))

Max和Min

Max和Min:獲取指定對象的最大值和最小值。比如想要獲取Author表中,最大的年齡和最小的年齡分別是多少。那么可以通過以下代碼來實現:

from django.db.models import Max,Min
result = Author.objects.aggregate(Max('age'),Min('age'))

如果最大的年齡是90,最小的年齡是10。那么以上的result將為:

{"age__max":90,"age__min":10}

Sum

Sum:求指定對象的總和。比如要求圖書的銷售總額。那么可以使用以下代碼實現:

from djang.db.models import Sum
result = Book.objects.annotate(total=Sum("bookorder__price"))

以上的代碼annotate的意思是給Book表在查詢的時候添加一個字段叫做total,這個字段的數據來源是從BookOrder模型的price的總和而來。 

aggregate和annotate的區別

相同點:這兩個方法都可以執行聚合函數。

不同點:

  • aggregate返回的是一個字典,在這個字典中存儲的是這個聚合函數執行的結果。而annotate返回的是一個QuerySet對象,并且會在查找的模型上添加一個聚合函數的屬性。
  • aggregate不會做分組,而annotate會使用group by子句進行分組,只有調用了group by子句,才能對每一條數據求聚合函數的值。

F表達式:

F表達式: 動態的獲取某個字段上的值。并且這個F表達式,不會真正的去數據庫中查詢數據,他相當于只是起一個標識的作用。比如想要將原來每本圖書的價格都在原來的基礎之上增加10元,那么可以使用以下代碼來實現:

from django.db.models import F
Book.objects.update(price=F("price")+10) 

Q表達式

Q表達式:使用Q表達式包裹查詢條件,可以在條件之間進行多種操作。與/或非等,從而實現一些復雜的查詢操作。例子如下:

查找價格大于100,并且評分達到4.85以上的圖書:

  # 不使用Q表達式的
  books = Book.objects.filter(price__gte=100,rating__gte=4.85)
  # 使用Q表達式的
  books = Book.objects.filter(Q(price__gte=100)Q(rating__gte=4.85))

查找價格低于100元,或者評分低于4分的圖書:

books = Book.objects.filter(Q(price__gte=100)Q(rating__gte=4.85))

獲取價格大于100,并且圖書名字中不包含”傳“字的圖書:

books = Book.objects.filter(Q(price__gte=100)~Q(name__icontains='傳'))

到此這篇關于Django 聚合函數的具體使用的文章就介紹到這了,更多相關Django 聚合函數內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django Model層F,Q對象和聚合函數原理解析
  • django 中的聚合函數,分組函數,F 查詢,Q查詢
  • django的聚合函數和aggregate、annotate方法使用詳解

標簽:常德 銅川 通遼 株洲 黑龍江 呂梁 阿里 潛江

巨人網絡通訊聲明:本文標題《Django 聚合函數的具體使用》,本文關鍵詞  Django,聚合,函數,的,具體,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django 聚合函數的具體使用》相關的同類信息!
  • 本頁收集關于Django 聚合函數的具體使用的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久久精品国产免大香伊| 精品在线视频一区| 极品尤物av久久免费看| 成人在线一区二区三区| 69堂精品视频| 亚洲精品日日夜夜| 国产精一区二区三区| 欧美一级高清大全免费观看| 欧美韩国日本不卡| 狠狠v欧美v日韩v亚洲ⅴ| 91久久精品国产91性色tv| 国产视频不卡一区| 首页亚洲欧美制服丝腿| 91激情五月电影| 国产精品久久影院| 国产河南妇女毛片精品久久久| 欧美日韩午夜在线| 亚洲精品国久久99热| 成人三级伦理片| 久久亚洲一级片| 精品一区精品二区高清| 欧美精品在线视频| 五月天一区二区三区| 色狠狠色噜噜噜综合网| 亚洲日本护士毛茸茸| 成人h精品动漫一区二区三区| 久久久影视传媒| 精品亚洲免费视频| 欧美大度的电影原声| 蜜桃免费网站一区二区三区 | 一区二区在线免费观看| 成人av在线一区二区三区| 精品国产免费一区二区三区四区 | 自拍偷拍欧美激情| 99久久精品久久久久久清纯| 国产三级久久久| 成人国产精品免费观看视频| 国产精品久久毛片a| 国产一区二区成人久久免费影院| 精品国产网站在线观看| 国产麻豆精品theporn| 久久众筹精品私拍模特| 国产成人精品三级麻豆| 欧美国产日本韩| 91日韩在线专区| 午夜精品久久久久久久久| 欧美日韩一级大片网址| 日产欧产美韩系列久久99| 日韩精品一区二区三区中文不卡 | 美女性感视频久久| 国产亚洲成av人在线观看导航 | 国产三级精品在线| 91麻豆高清视频| 五月激情丁香一区二区三区| 日韩久久精品一区| 波多野洁衣一区| 亚洲一区av在线| 精品少妇一区二区三区视频免付费| 国产麻豆精品久久一二三| 亚洲欧洲精品一区二区精品久久久| 99re亚洲国产精品| 日本不卡视频一二三区| 国产欧美精品一区| 欧美日韩一区久久| 黄色成人免费在线| 亚洲色图在线播放| 精品国产乱码久久久久久1区2区 | 欧美日韩国产在线观看| 国产黄色91视频| 亚洲成av人片| 欧美激情一区三区| 91精品欧美综合在线观看最新 | 国产精品久久综合| 337p亚洲精品色噜噜狠狠| 国产精品影视网| 日韩高清不卡一区| 国产精品婷婷午夜在线观看| 欧美性感一类影片在线播放| 黄一区二区三区| 亚洲已满18点击进入久久| 亚洲精品一区二区三区香蕉| 日本韩国一区二区三区视频| 奇米综合一区二区三区精品视频| 国产精品久久久久一区二区三区 | 欧美日韩免费观看一区二区三区 | 欧美在线短视频| 国产精品一区二区男女羞羞无遮挡| 亚洲男人天堂av网| 欧美精品一区二区高清在线观看| 91玉足脚交白嫩脚丫在线播放| 久久精品国产一区二区| 亚洲已满18点击进入久久| 国产日韩欧美一区二区三区乱码| 欧美理论片在线| 91麻豆国产自产在线观看| 国产aⅴ综合色| 麻豆精品久久精品色综合| 亚洲国产va精品久久久不卡综合| 国产精品欧美经典| 久久久久久9999| 精品少妇一区二区三区日产乱码| 欧美精品一二三区| 欧美体内she精高潮| 色噜噜狠狠色综合中国| 高潮精品一区videoshd| 精品一区二区三区在线观看 | 精品美女在线播放| 日韩欧美高清dvd碟片| 欧美日韩精品一区视频| 91成人在线精品| 一本久久a久久精品亚洲| 不卡在线观看av| 成人av免费网站| youjizz国产精品| 99久久精品久久久久久清纯| 色综合中文字幕国产| 精品在线视频一区| 青青青伊人色综合久久| 五月婷婷综合激情| 免费看精品久久片| 韩国av一区二区| 国产精品一级在线| 99精品欧美一区二区蜜桃免费| 色婷婷综合久久久中文一区二区 | 国产传媒一区在线| 成人免费毛片嘿嘿连载视频| 国产91高潮流白浆在线麻豆| 豆国产96在线|亚洲| caoporn国产精品| 欧美亚洲一区二区三区四区| 欧美日韩aaaaaa| 日韩免费在线观看| 亚洲国产精品av| 一区二区在线看| 免费人成在线不卡| 国产91色综合久久免费分享| 成人h动漫精品一区二区| 欧美在线你懂得| 91精品国产综合久久香蕉麻豆| 欧美精品一区二区在线播放 | 精品国内二区三区| 91精品国产欧美一区二区18| 樱桃国产成人精品视频| 91精品国产高清一区二区三区 | 一区二区免费看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产一区二区三区不卡在线观看 | 亚洲人吸女人奶水| 日韩精品三区四区| 国产成a人亚洲| 欧美四级电影在线观看| 久久久久久久久久久黄色| 亚洲欧美综合色| 久久99蜜桃精品| 91麻豆免费看片| 久久先锋影音av鲁色资源| 亚洲乱码国产乱码精品精小说| 偷拍亚洲欧洲综合| 95精品视频在线| 精品va天堂亚洲国产| 亚洲美女偷拍久久| 国产精品18久久久久久vr| 欧美午夜精品久久久| 欧美极品xxx| 日本中文字幕一区二区有限公司| av亚洲精华国产精华| 日韩色在线观看| 亚洲高清视频中文字幕| 国产91高潮流白浆在线麻豆| 51久久夜色精品国产麻豆| 亚洲欧美日韩国产一区二区三区| 麻豆精品久久久| 8x福利精品第一导航| 亚洲尤物视频在线| aaa国产一区| 国产精品麻豆久久久| 久久av中文字幕片| 日韩手机在线导航| 天天影视色香欲综合网老头| 色综合天天天天做夜夜夜夜做| 国产网站一区二区| 久久电影国产免费久久电影| 欧美精品第1页| 亚洲国产裸拍裸体视频在线观看乱了| 国产成人精品aa毛片| 久久夜色精品国产噜噜av| 蜜桃精品视频在线观看| 欧美欧美欧美欧美首页| 一区二区三区四区在线| 99精品视频一区二区| 国产网红主播福利一区二区| 久久99久久99精品免视看婷婷 | 久久久久久久精| 狠狠色伊人亚洲综合成人| 欧美人与性动xxxx| 一区二区免费在线| 欧美亚洲综合色| 日韩制服丝袜av| 日韩一区二区中文字幕| 久久国产福利国产秒拍|