婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Django 聚合函數(shù)的具體使用

Django 聚合函數(shù)的具體使用

熱門(mén)標(biāo)簽:富錦商家地圖標(biāo)注 池州外呼調(diào)研線路 沈陽(yáng)外呼系統(tǒng)呼叫系統(tǒng) 外呼系統(tǒng)哪些好辦 沈陽(yáng)防封電銷(xiāo)卡品牌 沈陽(yáng)人工外呼系統(tǒng)價(jià)格 武漢外呼系統(tǒng)平臺(tái) 江西省地圖標(biāo)注 如何申請(qǐng)400電話費(fèi)用

前言

orm模型中的聚合函數(shù)跟MySQL中的聚合函數(shù)作用是一致的,也有像Sum、Avg、Count、Max、Min,接下來(lái)我們逐個(gè)介紹

聚合函數(shù)

所有的聚合函數(shù)都是放在django.db.models下面。并且聚合函數(shù)不能夠單獨(dú)的執(zhí)行,聚合函數(shù)是通過(guò)aggregate方法來(lái)實(shí)現(xiàn)的。在說(shuō)明聚合函數(shù)的用法的時(shí)候,都是基于以下的模型對(duì)象來(lái)實(shí)現(xiàn)的。

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):
     """圖書(shū)模型"""
     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):
     """圖書(shū)訂單模型"""
     book = models.ForeignKey("Book",on_delete=models.CASCADE)
     price = models.FloatField()

     class Meta:
         db_table = 'book_order'

Avg

Avg:求平均值。比如想要獲取所有圖書(shū)的價(jià)格平均值。那么可以使用以下代碼實(shí)現(xiàn)。

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

以上的打印結(jié)果是:

 {"price__avg":23.0}

其中price__avg的結(jié)構(gòu)是根據(jù)field__avg規(guī)則構(gòu)成的。如果想要修改默認(rèn)的名字,那么可以將Avg賦值給一個(gè)關(guān)鍵字參數(shù)。示例代碼如下:

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

以上的打印結(jié)果為

 {"my_avg":23} 

Count

Count:獲取指定的對(duì)象的個(gè)數(shù)。示例代碼如下:

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

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

Count類中,還有另外一個(gè)參數(shù)叫做distinct,默認(rèn)是等于False,如果是等于True,那么將去掉那些重復(fù)的值。比如要獲取作者表中所有的不重復(fù)的郵箱總共有多少個(gè),那么可以通過(guò)以下代碼來(lái)實(shí)現(xiàn):

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

Max和Min

Max和Min:獲取指定對(duì)象的最大值和最小值。比如想要獲取Author表中,最大的年齡和最小的年齡分別是多少。那么可以通過(guò)以下代碼來(lái)實(shí)現(xiàn):

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:求指定對(duì)象的總和。比如要求圖書(shū)的銷(xiāo)售總額。那么可以使用以下代碼實(shí)現(xiàn):

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

以上的代碼annotate的意思是給Book表在查詢的時(shí)候添加一個(gè)字段叫做total,這個(gè)字段的數(shù)據(jù)來(lái)源是從BookOrder模型的price的總和而來(lái)。 

aggregate和annotate的區(qū)別

相同點(diǎn):這兩個(gè)方法都可以執(zhí)行聚合函數(shù)。

不同點(diǎn):

  • aggregate返回的是一個(gè)字典,在這個(gè)字典中存儲(chǔ)的是這個(gè)聚合函數(shù)執(zhí)行的結(jié)果。而annotate返回的是一個(gè)QuerySet對(duì)象,并且會(huì)在查找的模型上添加一個(gè)聚合函數(shù)的屬性。
  • aggregate不會(huì)做分組,而annotate會(huì)使用group by子句進(jìn)行分組,只有調(diào)用了group by子句,才能對(duì)每一條數(shù)據(jù)求聚合函數(shù)的值。

F表達(dá)式:

F表達(dá)式: 動(dòng)態(tài)的獲取某個(gè)字段上的值。并且這個(gè)F表達(dá)式,不會(huì)真正的去數(shù)據(jù)庫(kù)中查詢數(shù)據(jù),他相當(dāng)于只是起一個(gè)標(biāo)識(shí)的作用。比如想要將原來(lái)每本圖書(shū)的價(jià)格都在原來(lái)的基礎(chǔ)之上增加10元,那么可以使用以下代碼來(lái)實(shí)現(xiàn):

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

Q表達(dá)式

Q表達(dá)式:使用Q表達(dá)式包裹查詢條件,可以在條件之間進(jìn)行多種操作。與/或非等,從而實(shí)現(xiàn)一些復(fù)雜的查詢操作。例子如下:

查找價(jià)格大于100,并且評(píng)分達(dá)到4.85以上的圖書(shū):

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

查找價(jià)格低于100元,或者評(píng)分低于4分的圖書(shū):

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

獲取價(jià)格大于100,并且圖書(shū)名字中不包含”傳“字的圖書(shū):

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

到此這篇關(guān)于Django 聚合函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)Django 聚合函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

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

標(biāo)簽:常德 銅川 通遼 株洲 黑龍江 呂梁 阿里 潛江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django 聚合函數(shù)的具體使用》,本文關(guān)鍵詞  Django,聚合,函數(shù),的,具體,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django 聚合函數(shù)的具體使用》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Django 聚合函數(shù)的具體使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    青青草成人在线观看| 亚洲国产wwwccc36天堂| 国产精品亚洲成人| 亚洲在线视频网站| 伊人开心综合网| 国产精品乱码妇女bbbb| 亚洲精品一区二区三区蜜桃下载| 一区二区视频在线| 色综合天天综合在线视频| 国产一二三精品| 精品在线免费观看| 亚洲黄色性网站| 国产麻豆精品一区二区| 国内国产精品久久| 毛片一区二区三区| 成人app在线观看| 色欲综合视频天天天| 91精品国产全国免费观看| 欧美r级电影在线观看| 欧美一区二区在线观看| 日韩精品中文字幕在线一区| 日韩欧美精品三级| 亚洲永久免费视频| 成人亚洲一区二区一| 欧美午夜不卡在线观看免费| 久久影院午夜片一区| 丝袜国产日韩另类美女| 床上的激情91.| 久久亚洲二区三区| 麻豆久久一区二区| 久久99精品一区二区三区| 国产福利一区二区三区视频| 成人免费精品视频| 欧美激情中文不卡| 国产精品一二三区在线| 激情综合五月天| 久久亚区不卡日本| 国产一区三区三区| 精品成人一区二区| 看电影不卡的网站| 欧美精品一区二区三区视频| 日韩精品91亚洲二区在线观看| 色94色欧美sute亚洲线路一久| 国产综合色视频| 国产精品污网站| 欧美一区二区三区影视| 成人18精品视频| 午夜激情综合网| 国产精品国产三级国产aⅴ入口 | 亚洲影院理伦片| 日本一不卡视频| 日韩欧美国产精品一区| 日本女人一区二区三区| 久久女同互慰一区二区三区| 五月天一区二区三区| 欧美片在线播放| 国产精品综合久久| 国产亚洲一区字幕| 国内久久婷婷综合| 亚洲视频你懂的| 欧美r级在线观看| 久久精品亚洲精品国产欧美| 国产不卡视频在线观看| 免费观看在线综合色| 亚洲码国产岛国毛片在线| 久久蜜臀精品av| 夜夜操天天操亚洲| 国产亚洲综合av| 精品黑人一区二区三区久久| 成人av在线一区二区| 免费高清不卡av| 在线播放欧美女士性生活| 欧美不卡一区二区三区| 7777女厕盗摄久久久| 91成人在线精品| 色综合天天综合网天天看片| 成人综合激情网| av电影一区二区| 久久精品国产一区二区三区免费看| 欧美日韩高清一区二区不卡 | 麻豆91小视频| 亚洲国产成人av网| 亚洲精品v日韩精品| 99精品久久99久久久久| 亚洲色图.com| 国产剧情一区二区| 成人免费黄色在线| 久久夜色精品国产噜噜av| 97se狠狠狠综合亚洲狠狠| 伊人性伊人情综合网| 亚洲青青青在线视频| 精品少妇一区二区三区在线播放 | 亚洲欧洲制服丝袜| 精品午夜久久福利影院| 精品一区二区三区免费| 日本道精品一区二区三区| 色婷婷久久综合| 日韩欧美专区在线| 日韩欧美国产综合一区 | 国产麻豆91精品| 国产超碰在线一区| 成人性生交大片免费看中文| 国产成人av一区| 精品成人一区二区三区| 亚洲精品国产精华液| 国内精品视频666| 欧美一区二区三区在线视频| 国产拍揄自揄精品视频麻豆| 色88888久久久久久影院按摩| 日本一区二区三区dvd视频在线| 亚洲欧美在线观看| 麻豆国产一区二区| 欧美日韩国产另类不卡| 亚洲婷婷综合久久一本伊一区| 国产精品主播直播| 日韩av一区二| 日韩欧美的一区二区| 香港成人在线视频| 国产精品久久久久久一区二区三区 | 亚洲色图欧美激情| 欧美专区在线观看一区| 亚洲精品欧美激情| 国产美女一区二区三区| 亚洲视频在线一区| 91精品欧美久久久久久动漫| 欧美a一区二区| 国产精品久久久久久久久晋中| 欧美中文字幕一区二区三区亚洲| 麻豆精品视频在线观看视频| 国产精品免费aⅴ片在线观看| 91福利在线观看| 国产九色sp调教91| 亚洲国产欧美另类丝袜| 中文字幕日韩av资源站| 2017欧美狠狠色| 欧美精品久久99久久在免费线| 国产一区二区三区免费在线观看| 亚洲综合免费观看高清完整版| 国产日韩精品一区二区三区| 91色porny蝌蚪| 在线区一区二视频| 波多野结衣在线一区| 成人黄色在线看| 91蜜桃在线观看| 91久久精品网| 欧美精品久久99久久在免费线| 日韩三级.com| 国产女人18水真多18精品一级做| 日韩欧美国产综合| 久久综合久久99| 精品国产乱码久久久久久1区2区 | 国产精品理论在线观看| 欧美一区二区三区不卡| 欧美sm极限捆绑bd| 国产精品国模大尺度视频| 亚洲视频在线一区观看| 午夜影视日本亚洲欧洲精品| 精品一区二区久久| 色噜噜狠狠色综合欧洲selulu| 欧美亚洲国产一区在线观看网站| 国产视频一区在线观看| 精品国产一二三区| 亚洲最大的成人av| 日韩专区一卡二卡| 国产在线看一区| 91视频精品在这里| 国产亚洲精品bt天堂精选| 亚洲va国产天堂va久久en| 国产美女精品在线| 成人黄色一级视频| 欧美va亚洲va香蕉在线 | 亚洲成人av电影| 欧美成人官网二区| 日韩电影一二三区| 91原创在线视频| 久久激情五月激情| 欧美日韩精品一区视频| 一区二区三区四区视频精品免费 | 中文字幕制服丝袜一区二区三区 | 欧美日韩久久一区| 亚洲综合色丁香婷婷六月图片| 国产一区 二区 三区一级| 日韩欧美一区二区视频| 久久er精品视频| 日韩你懂的在线观看| 国产一区二区三区精品视频| 久久精品在线免费观看| caoporn国产精品| 亚洲欧美日韩国产一区二区三区| 色88888久久久久久影院按摩| 亚洲成人福利片| 欧美一区二区三区播放老司机| 久久99日本精品| 亚洲一区二区成人在线观看| 欧美一区国产二区| 国产91精品一区二区麻豆亚洲| 亚洲制服丝袜av| 亚洲欧美在线视频| 久久久电影一区二区三区| 91精品综合久久久久久|