亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 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 聚合函數的具體使用的相關信息資訊供網民參考!
  • 推薦文章
    免费国产在线观看| 精品视频在线观看一区二区 | 999久久久免费精品国产牛牛| 欧美激情一区二区三区在线| 国产美女在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日韩av成人| 国产91素人搭讪系列天堂| 欧美激情一区二区三区在线播放| 国产成人精品影视| 九九免费高清在线观看视频| 久久精品店| 日韩中文字幕在线观看视频| 香蕉视频三级| 日韩avdvd| 免费国产在线视频| 欧美18性精品| 久久福利影视| 国产伦久视频免费观看视频| 九九九国产| 天天做人人爱夜夜爽2020毛片| 精品视频一区二区三区| 精品国产一区二区三区国产馆| 美女免费精品视频在线观看| 国产不卡在线观看| 亚洲www美色| 亚欧成人毛片一区二区三区四区| 成人影院一区二区三区| 国产不卡精品一区二区三区| 免费一级片在线观看| 九九热精品免费观看| 久久久成人网| 日韩在线观看视频免费| 亚洲 欧美 成人日韩| 国产韩国精品一区二区三区| 午夜激情视频在线播放| 97视频免费在线观看| 日韩av片免费播放| 欧美爱色| 欧美激情一区二区三区在线| 91麻豆国产级在线| 国产伦久视频免费观看 视频| 四虎影视库国产精品一区| 成人免费一级毛片在线播放视频| 欧美a级成人淫片免费看| 国产一区二区精品在线观看| 日韩欧美一及在线播放| 黄色福利片| 九九热国产视频| 台湾美女古装一级毛片| 成人在激情在线视频| 日本免费看视频| 沈樵在线观看福利| 久久精品免视看国产明星| 九九国产| 国产视频久久久| 日韩专区在线播放| 欧美一区二区三区性| 九九精品久久| 一级女性全黄生活片免费| 尤物视频网站在线| 99久久精品国产免费| 亚欧成人毛片一区二区三区四区| 欧美激情一区二区三区在线| 免费一级片网站| 亚洲女人国产香蕉久久精品 | 成人高清视频免费观看| 亚洲wwwwww| 欧美a级成人淫片免费看| 日本乱中文字幕系列| 四虎论坛| 国产综合成人观看在线| 国产视频一区二区在线观看| 你懂的福利视频| 美女免费精品视频在线观看| 黄色免费网站在线| 日本特黄特黄aaaaa大片| 亚洲 欧美 91| a级毛片免费全部播放| 韩国三级香港三级日本三级la| 日本在线不卡视频| 在线观看导航| 欧美另类videosbestsex久久| 国产网站在线| 欧美日本韩国| 二级特黄绝大片免费视频大片| 日本免费乱理伦片在线观看2018| 日韩字幕在线| 成人高清护士在线播放| 欧美激情一区二区三区在线| 你懂的福利视频| a级黄色毛片免费播放视频| 国产a免费观看| 久久精品成人一区二区三区| 成人免费网站视频ww| 成人免费一级纶理片| 欧美激情一区二区三区视频| 亚欧乱色一区二区三区| 99热热久久| 色综合久久天天综合| 天天色成人| 色综合久久天天综线观看| 久久99爰这里有精品国产| 久久国产影视免费精品| 国产网站在线| 日韩免费在线观看视频| 国产精品12| 成人高清视频在线观看| 日本伦理片网站| 国产伦久视频免费观看 视频| 欧美1区| 国产网站免费| 天天做日日爱夜夜爽| 欧美爱爱动态| 亚欧成人乱码一区二区| 欧美激情影院| 一本伊大人香蕉高清在线观看| 人人干人人插| 精品国产一区二区三区久久久蜜臀 | 成人免费网站视频ww| 欧美日本免费| 天天做日日干| 日日夜夜婷婷| 欧美a级成人淫片免费看| 亚欧成人毛片一区二区三区四区| 国产亚洲精品aaa大片| 91麻豆精品国产片在线观看| 中文字幕一区二区三区精彩视频 | 国产国产人免费视频成69堂| 精品久久久久久综合网| 精品视频在线观看一区二区 | 国产一区二区精品久久91| 欧美另类videosbestsex久久| 亚州视频一区二区| 国产激情视频在线观看| 免费国产在线视频| 国产网站在线| 午夜欧美成人久久久久久| 亚洲精品久久玖玖玖玖| 亚洲天堂在线播放| 中文字幕一区二区三区 精品| 免费一级片网站| 免费一级片在线观看| 国产91精品系列在线观看| 91麻豆国产级在线| 日韩免费片| 久久久久久久免费视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产精品1024永久免费视频 | a级毛片免费观看网站| 成人免费福利片在线观看| 日本免费乱理伦片在线观看2018| 日本在线www| 亚洲精品久久久中文字| 国产不卡在线观看| 黄视频网站免费观看| 欧美激情中文字幕一区二区| 成人a级高清视频在线观看| 亚洲第一页乱| 日日夜人人澡人人澡人人看免| 日韩av东京社区男人的天堂| 久久精品大片| 欧美爱色| 国产91精品一区二区| 成人在激情在线视频| 青青久久精品| 午夜久久网| 日本在线www| 色综合久久天天综线观看| 国产亚洲精品aaa大片| 国产高清在线精品一区二区| 国产一级强片在线观看| 国产高清在线精品一区a| 亚洲天堂在线播放| 日韩av东京社区男人的天堂| 九九免费高清在线观看视频| 999久久66久6只有精品| 亚欧成人乱码一区二区| 精品国产一区二区三区久久久蜜臀 | 国产伦精品一区三区视频| a级毛片免费观看网站| 99久久精品费精品国产一区二区| 成人免费福利片在线观看| 四虎影视库| 精品视频在线观看一区二区三区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 九九久久99综合一区二区| 亚欧成人乱码一区二区| 一级女性全黄久久生活片| 久久99中文字幕| 精品国产一区二区三区久| 成人免费观看的视频黄页| 亚欧视频在线| 久久成人性色生活片| 日韩免费在线观看视频| 午夜在线影院| 国产一区精品| 国产原创视频在线| 国产一区免费观看| 日韩女人做爰大片|