当前位置: 首页 > news >正文

073:【Django数据库】ORM聚合函数详解-Count

ORM聚合函数详解-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))

获取每种数买了多少本:

    result = Book.objects.annotate(book_type=Count("bookorder__id"))  # bookorder__id 和 bookorder  一样(如果是主键)
    print(result)
    for item in result:
        print(item.name, item.book_type)
    print(result.query)
SELECT `book`.`id`, `book`.`name`, `book`.`pages`, `book`.`price`, `book`.`rating`, `book`.`author_id`, `book`.`publisher_id`, COUNT(`book_order`.`id`) AS `book_type` FROM `book` LEFT OUTER JOIN `book_order` ON (`book`.`id` = `book_order`.`book_id`) GROUP BY `book`.`id` ORDER BY NULL

实例截图如下:

 

转载于:https://www.cnblogs.com/zheng-weimin/p/10246904.html

相关文章:

  • 2019年如何成为全栈工程师?
  • 原生 js 实现移动端 Touch 滑动反弹
  • 文章正在审核中 为什么使用了爬虫代理ip,真实IP还是被封禁了?
  • elasticsearch-head插件安装
  • Git 常用命令
  • [转]Introduction of iSCSI Target in Windows Server 2012
  • 【转】理解红黑树
  • FastDFS-图片服务器
  • Volo.Abp.EntityFrameworkCore.MySQL 使用
  • Future 和 FutureTask 源码详解
  • redis requires ruby version 2.2.2的解决方案
  • 百年老站换新颜 河南信阳火车站重新开通迎客
  • 零基础学算法-质数
  • 日本一名高龄男子开车冲上人行道 造成共7人受伤
  • 消息队列使用的四种场景介绍
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Android优雅地处理按钮重复点击
  • classpath对获取配置文件的影响
  • ES6之路之模块详解
  • Nodejs和JavaWeb协助开发
  • PermissionScope Swift4 兼容问题
  • 观察者模式实现非直接耦合
  • 基于web的全景—— Pannellum小试
  • 排序算法学习笔记
  • 全栈开发——Linux
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微服务入门【系列视频课程】
  • 原生Ajax
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • UI设计初学者应该如何入门?
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (1)bark-ml
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (初研) Sentence-embedding fine-tune notebook
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)用.Net的File控件上传文件的解决方案
  • *** 2003
  • .cn根服务器被攻击之后
  • .libPaths()设置包加载目录
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET 读取 JSON格式的数据
  • .NET程序员迈向卓越的必由之路
  • .net经典笔试题
  • @SuppressWarnings(unchecked)代码的作用
  • @vue/cli脚手架
  • @我的前任是个极品 微博分析
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛