最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django 中的聚合函數(shù),分組函數(shù),F(xiàn) 查詢,Q查詢

 更新時間:2019年07月25日 10:16:39   作者:谷子的  
這篇文章主要介紹了django 中的聚合函數(shù),分組函數(shù),F(xiàn) 查詢,Q查詢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

先以mysql的語句,聚合用在分組里,

對mysql中g(shù)roupby 是分組

每什么的時候就要分組,如 每個小組,就按小組分,

group by 字段 having 聚合函數(shù)

#舉例 :求班里的平均成績, select Avg(score) from stu

在django中

聚合 是aggreate(*args,**kwargs),通過QuerySet 進(jìn)行計算。做求值運(yùn)算的時候使用

分組 是annotate(*args,**kwargs),括號里是條件,遇到 每什么的時候就要分組,

先從models 導(dǎo)入要用到的函數(shù)

from django.db.models import Min,Avg,Max,Sum

def aggregate(request):

  #求所有書籍的平均價格
  ret11 = Book.objects.all().aggregate(Avg("price"))
  # print(ret11)#{'price__avg': 51.975}

  #求所有書籍的最高價
  ret12 = Book.objects.all().aggregate(MaxPrice=Max('price'))
  # print(ret12)#{'MaxPrice': Decimal('100.00')}

  #egon 出版過書籍的最高價格
  p = Book.objects.filter(authors__name='egon').aggregate(Max('price'))

  print(p)#{'price__max': Decimal('100.00')}



  #分組 annotate()
  #每一個作者出版過的書的最高價 ,
  #解析,按照作者的名字分組,就要用到values,顯示的是字段的名字,

  b1 = Book.objects.values('authors__name').annotate(Max('price'))

  print(b1)
  #<QuerySet [{'authors__name': 'egon', 'price__max': Decimal('100.00')},
      # {'authors__name': 'alex', 'price__max': Decimal('100.00')},
      # {'authors__name': 'yuan', 'price__max': Decimal('100.00')},
      # {'authors__name': 'oldboy', 'price__max': Decimal('100.00')}]># 四個作者都關(guān)聯(lián)了同一本書,而這本書又是最高價
#每個出版社出版的最低價格的書籍

b2 = Book.objects.values('publish__name').annotate(Min('price'))
print(b2)
#<QuerySet [{'publish__name': '北京出版社', 'price__min': Decimal('100.00')},
# {'publish__name': '河下出版社', 'price__min': Decimal('45.00')},
# {'publish__name': '清華出版社', 'price__min': Decimal('39.90')},
# {'publish__name': '人民出版社', 'price__min': Decimal('23.00')}]>

F Q 查詢

F,主要是做查詢

Q查詢 可以做組合條件的查詢 & 是 與 ,|(管道符) 或,~ 非

def FAndQ(request):
 
  #給每本書漲價10元,
  #用sql語句寫 update book set price=price+10
 
  #F,主要是做查詢
  # Book.objects.all().update(price=F('price')+10)
 
  #查詢書籍是富開頭,并且價格大于30的書籍 ,逗號 可以做 與 的關(guān)系查詢
  b4 = Book.objects.filter(title__startswith="富",price__gt=30)
  # print(b4)#<QuerySet [<Book: 富爸爸>]>
 
 
  #Q查詢 可以做組合條件的查詢 & 是 與 ,|(管道符) 或,~ 非
 
  ##查詢書籍是富開頭,或價格大于30的書籍
  b5 = Book.objects.filter(Q(title__startswith="富") | Q(price__gt=60))
  # print(b5)
  #<QuerySet [<Book: Linux>, <Book: 項(xiàng)塔蘭>, <Book: 追風(fēng)箏的人>, <Book: 富爸爸>]>
 
  #組合查詢,以富開頭,價格大于60 ,或者id大于5的書籍
  b6 = Book.objects.filter(Q(title__startswith="富")&Q(price__gt=60)|Q(id__gt=5))
  #print(b6)#<QuerySet [<Book: 富兒子>]>
  #
  #查詢條件如果不加Q,就要放到最后面,
  b7 = Book.objects.filter(Q(price__gt=60) | Q(id__gt=5),title__startswith="富")
  # print(b7)
 
  # ~ 取反的意思
  b8 = Book.objects.filter(Q(title__startswith="富") & ~Q(price__gt=60) | Q(id__gt=5))
  print(b8)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)

    提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)

    這篇文章主要介紹了提升Python效率之使用循環(huán)機(jī)制代替遞歸函數(shù)的相關(guān)知識,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • 十分鐘利用Python制作屬于你自己的個性logo

    十分鐘利用Python制作屬于你自己的個性logo

    這篇文章主要給大家介紹了關(guān)于十分鐘如何利用Python制作屬于你自己的個性logo的相關(guān)資料,主要利用的是詞云實(shí)現(xiàn)這個效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友下面來一起看看吧
    2018-05-05
  • Python 獲取主機(jī)ip與hostname的方法

    Python 獲取主機(jī)ip與hostname的方法

    今天小編就為大家分享一篇Python 獲取主機(jī)ip與hostname的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python執(zhí)行shell并獲取結(jié)果的詳細(xì)示例

    python執(zhí)行shell并獲取結(jié)果的詳細(xì)示例

    在Python中執(zhí)行Shell命令并獲取其結(jié)果,通??梢允褂胹ubprocess模塊,這個模塊允許我們啟動新的進(jìn)程,連接到它們的輸入/輸出/錯誤管道,并獲取它們的返回碼,下面是一個詳細(xì)的示例,展示了如何使用subprocess.run()函數(shù)來執(zhí)行Shell命令并獲取其輸出,需要的朋友可以參考下
    2024-07-07
  • Python Collatz序列實(shí)現(xiàn)過程解析

    Python Collatz序列實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Python Collatz序列實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • python經(jīng)典百題之static定義靜態(tài)變量的三種方法

    python經(jīng)典百題之static定義靜態(tài)變量的三種方法

    日常腳本編寫過程中時常會用到python的靜態(tài)方法、實(shí)例方法、類方法,下面這篇文章主要給大家介紹了關(guān)于python經(jīng)典百題之static定義靜態(tài)變量的三種方法,需要的朋友可以參考下
    2024-09-09
  • python中關(guān)于對super()函數(shù)疑問解惑

    python中關(guān)于對super()函數(shù)疑問解惑

    Python中的super()是用于調(diào)用父類(或父類的父類...)方法的函數(shù),主要用于多繼承,單繼承問題不大,下面這篇文章主要給大家介紹了關(guān)于python中關(guān)于對super()函數(shù)疑問解惑的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python使用matplotlib繪制圓形代碼實(shí)例

    Python使用matplotlib繪制圓形代碼實(shí)例

    這篇文章主要介紹了Python使用matplotlib繪制圓形代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • Python繪制散點(diǎn)密度圖的三種方式詳解

    Python繪制散點(diǎn)密度圖的三種方式詳解

    散點(diǎn)密度圖是在散點(diǎn)圖的基礎(chǔ)上,計算了每個散點(diǎn)周圍分布了多少其他的點(diǎn),并通過顏色表現(xiàn)出來。本文主要介紹了Python繪制散點(diǎn)密度圖的三種方式,需要的可以參考下
    2022-06-06
  • python 生成器和迭代器的原理解析

    python 生成器和迭代器的原理解析

    這篇文章主要介紹了python 生成器和迭代器的原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10

最新評論

日喀则市| 宁津县| 巍山| 吉安县| 阜康市| 合川市| 锡林浩特市| 剑川县| 铜陵市| 绵竹市| 正阳县| 靖边县| 江华| 浪卡子县| 米易县| 乌审旗| 佛坪县| 仁怀市| 郸城县| 绩溪县| 曲靖市| 阳泉市| 清新县| 澎湖县| 诏安县| 东光县| 上饶市| 定兴县| 泽州县| 潞城市| 遵义县| 江西省| 井冈山市| 平山县| 哈尔滨市| 铜山县| 丽水市| 都昌县| 静乐县| 读书| 丹东市|