django ORM框架 第四章 聚合函数

news2024/10/2 1:30:56

上一章:django ORM框架 第三章 关联表的数据创建与查询_做测试的喵酱的博客-CSDN博客

一、聚合函数类型:

from django.db.models import Q, Count, Avg, Max, Min

班级表:

学生信息表:

1.1 Count

模版:

QuerySet.aggregate(聚合函数("字段名"))

返回结果为一个字典 

举例: name中包含“红” 的学生数量

    x = Student.objects.filter(name__contains="红").aggregate(Count("id"))
    print(x)

x 的值为一个字典,{'id__count': 3}

注意:

1、计算结果为一个字典,key 是字段名__聚合函数名小写,如'id__count'

2、可以通过关键字参数形式,自定义返回字典中key。

如我要把key 改成 test , {'test': 3}。 test=Count("id")

    x = Student.objects.filter(name__contains="红").aggregate(test=Count("id"))

1.2 分组查询

格式:

父表名.objects.values('父表主键id').annotate(Count('从表模型类名小写名称'))

举例:

统计每个班级的学生数量。

 y = Class.objects.values('class_id').annotate(Count('student'))
 print(y)

y的值为 QuerySet ,但是QuerySet 中每一个元素,是一个字典。

<QuerySet [{'class_id': 1, 'student__count': 3}, {'class_id': 2, 'student__count': 2}, {'class_id': 3, 'student__count': 3}, {'class_id': 4, 'student__count': 5}]>

注意:

1、想要自定义 字典中的key,将  'student__count': 3 中的key 改成自定义的key如 miao:3

需要使用关键字方式 annotate(miao=Count('student'))

    y = Class.objects.values('class_id').annotate(miao=Count('student'))
    print(y)

y的值为:

<QuerySet [{'class_id': 1, 'miao': 3}, {'class_id': 2, 'miao': 2}, {'class_id': 3, 'miao': 3}, {'class_id': 4, 'miao': 5}]>

1.2 Avg  Max Min

与Count使用方法一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将m4a音频转换mp3格式,5种简单方法帮你处理

如何将m4a音频转换mp3格式&#xff1f;这个问题想必在工作生活中经常遇到吧。为什么要将m4a音频转换mp3格式呢&#xff1f;首先&#xff0c;M4A是一种较新的高质量音频文件格式&#xff0c;通常用于存储高保真度的音频文件&#xff0c;例如音乐录音室的原始录制。但是&#xff…

基于C#制作一个ChatGPT桌面助手

基于C#制作一个ChatGPT桌面助手&#xff0c;在工作或者学习时提升自己的效率&#xff0c;工欲善其事&#xff0c;必先利其器。 一、前言1.1、什么是ChatGPT1.2、ChatGPT官网及key申请 二、后台项目2.1、项目创建2.2、界面设置2.3、获取版本2.4、发送信息 一、前言 1.1、什么是…

深度学习实战31-开发基于机器学习的在线图像识别工具

大家好,我是微学AI,今天给大家讲一下深度学习实战31-开发基于机器学习的在线图像识别工具,本文开发一个基于机器学习的在线图像识别工具,用户可以上传一张图片,并得到对应的标签或分类信息。该工具应该支持多种图像类型,例如自然风景、动物、物品等,并且在处理复杂图像时…

面向移动机器人的道路环境感知

分享嘉宾 | 范睿 文稿整理 | William 自动驾驶感知 首先&#xff0c;三维几何模型背后的机理是多视图几何学&#xff0c;多视图几何学是指想要得到对应模型的三维几何架构&#xff0c;则必须要用相机在两个不同的位置进行拍照。如图1&#xff0c;可以通过利用两个相机在不同位…

【HarmonyOS】【JS】小白的鸿蒙学习之路2--小小的图片啊,动呀动起来

【关键字】 image组件、动画 【介绍】 今天和大家分享下&#xff0c;我在官网上学习的一篇Codelab。这篇帖子通过一个代码示例&#xff0c;实现image组件的平移、缩放、旋转和透明度变化效果。话不多说&#xff0c;我们一起学起来吧&#xff01; 【成果展示】 【开发步骤】 …

FE_VUE路由 细致解读router/index.js的配置

1 安装vue-router插件 安装vue-router&#xff0c;命令&#xff1a;npm i vue-router 【npm i vue-router3】&#xff0c;在main.js 中引入路由文件&#xff1a; import router from ./router&#xff0c; 注意router 不要变且为小写&#xff1b;注册路由&#xff08;因为main…

商场室内地图导航如何实现?商场室内导航地图怎么做?

商场室内地图导航如何实现&#xff1f;现在&#xff0c;消费者的消费观念和消费心理日趋成熟&#xff0c;对于购物商场的要求也愈加挑剔。电子地图作为大家最喜闻乐见的高效应用形式&#xff0c;能够在顾客购物的过程中带来非常大的帮助和体验&#xff0c;对于在大型的综合商场…

抖音电商的新增量在哪里?

“抖音电商涨不动了&#xff0c;才提出做货架”&#xff0c;“抖音做不好货架”……去年&#xff0c;抖音电商提出做“全域兴趣电商”&#xff0c;当时业内外有鼓励&#xff0c;也有不看好的声音。一年过去&#xff0c;5月16日&#xff0c;抖音电商总裁魏雯雯回应了质疑&#x…

Python可视化工具分享

今天和大家分享几个实用的纯python构建可视化界面服务&#xff0c;比如日常写了脚本但是不希望给别人代码&#xff0c;可以利用这些包快速构建好看的界面作为服务提供他人使用。有关于库的最新更新时间和当前star数量。 1、 streamlit (23.3k Updated 2 hours ago) Streamlit…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(I.MX6U驱动GPT定时器中断实现高精度延时) 2023.5.19

目录 前言整体文件结构源码分析&#xff08;保姆级讲解&#xff09;初始化延时函数部分&#xff1a;微秒(us)级延时部分毫秒(ms)级延时部分主函数main部分 编译下载结束语 前言 在上一讲过程中我们使用了EPIT定时器来实现了定时器中断&#xff0c;从而解决了按键消抖的问题。但…

ChatGPT与深度学习的完美融合:打造智能化推荐系统新时代

PNN | AutoRec | 推荐算法 NFM | ChatGPT | 深度学习 新技术如ChatGPT、LLM、AIGC等的兴起&#xff0c;使推荐系统拥有更强的学习和预测能力。然而&#xff0c;推荐算法仍然是深度学习推荐系统中不可或缺的关键技术。推荐算法和这些技术应相辅相成&#xff0c;相互补充。推荐…

五大向量数据库入门横评

本文内容节选自 Paxi.ai 文章分享&#xff0c;Paxi.ai是一个基于GPT-4打造的帮助用户快速使用AI的AI工具&#xff0c;对内容感兴趣的朋友可以上他们官网查看。 从OpenAI发布GPT以来&#xff0c;AI尤其以LLM为代表的项目发展迅速&#xff0c;相信大家已经了解到大语言模型的魅力…

apk 作为资源提供 aar 的过程

1&#xff1a;参考&#xff1a;Android将APK项目封装为SDK(AAR) https://blog.csdn.net/weixin_51522235/article/details/128216091 四大点&#xff1a;1: apply plugin:com.android.library 2:去掉&#xff1a;applicationId 3:去掉&#xff1a;applicationVariants.all…

MySQL:触发器、权限管理

一、学习目标 了解什么是触发器掌握创建触发器的方法掌握查看触发器的方法掌握触发器的使用技巧掌握删除触发器的方法熟练掌握使用触发器的方法和技巧了解什么是权限表掌握权限表的用法掌握账户管理的方法掌握权限管理的方法掌握访问控制的方法熟练掌握新建用户的方法和技巧了…

小程序加weui或者TDesign安装

WeUI样式库展示&#xff1a;https://weui.io/ 微信官方WeUI相关文档&#xff1a;https://wechat-miniprogram.github.io/weui/docs/ WeUI-wxss 项目地址&#xff1a;https://github.com/Tencent/weui-wxss 安装 &#xff0c;1.先安装node.js 2.建立或者打开已经有的项目。…

【SolVES 模型】生态系统服务功能社会价值评估(基于多源环境QGIS、PostgreSQL、ArcGIS、Maxent、R语言)

SolVES模型&#xff08;Social Values for Ecosystem Services&#xff09;全称为生态系统服务社会价值模型&#xff0c;是由美国地质勘探局和美国科罗拉多州立大学联合开发的一款地理信息系统应用程序&#xff0c;开发该模型的目的主要是对生态系统服务功能中的社会价值进行空…

敏捷与瀑布:哪种项目管理方法适合你的企业?

​良好的项目管理可以改变企业的工作流&#xff0c;在减少混乱因素的同时注入方向和组织性。 同时&#xff0c;"项目管理 "对每个人来说并不意味着完全相同的事情。在企业及其客户中&#xff0c;最重要的两种项目管理方法是敏捷和瀑布。而这两种风格之间的差异很大&…

Redis是单线程还是多线程?揭开性能之谜!

大家好&#xff0c;我是小米&#xff0c;在这个充满技术乐趣的小天地里&#xff0c;今天我们来探讨一个备受争议的话题——Redis是单线程还是多线程&#xff1f;这个问题一直困扰着Redis的用户&#xff0c;让我们一起揭开性能之谜吧&#xff01; Redis作为一款高性能键值存储系…

交换机故障恢复

通常情况下&#xff0c;可以为交换机设置enable密码来提供安全&#xff0c;在没有enable密码的情况下&#xff0c;无法对交换机修改任何配置&#xff0c;因此&#xff0c;在忘记enable密码的时候&#xff0c;就意味着无法改动交换机信息。但是&#xff0c;如果能够物理上接触到…

实施办公自动化系统需要注意什么?

办公自动化系统的好处很容易理解。几乎每个企业都会欢迎更高的准确性、效率和利润率。办公自动化这个过程似乎势不可挡&#xff0c;那么该如何实现和管理呢&#xff1f; 决定自动化的内容 在实施办公自动化系统之前&#xff0c;企业将需要花时间研究哪些具体的流程需要自动化…