ORM分组与聚合

#########################聚合################################
#查询所有书籍的价格和 字典
ret = Book.objects.all().aggregate(price_sum=Sum("price"))
print(ret)

# 查询所有作者的平均年龄 字典
ret=Author.objects.all().aggregate(sum_age=Avg("age"))
print(ret)

#########################分组###############################
‘‘关键点:
    1.QuerySet对象.annotate()
  2.annotate进行分组统计,按前面values中的字段进行分组
  3.annotate()返回值依然是QuerySet对象
‘‘‘
# 查询每一个作者的名称以及出版过的书籍最高价格
ret = Author.objects.values("name").annotate(max_price = Max("book__price")).values("name","max_price")
print(ret)

# 查询每一个出版社的名称以及出过的书籍的平均价格
ret=Publish.objects.values("name").annotate(book_price=Avg("book__price")).values("name","book_price")
print(ret)

# 查询每一本书籍的作者个数
ret=Book.objects.values("title").annotate(count=Count("authors")).values("title","count")
print(ret)

原文地址:https://www.cnblogs.com/fangsheng/p/9747824.html

时间: 2024-10-08 11:46:43

ORM分组与聚合的相关文章

ORM 分组和聚合

多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情模型和作者模型之间是一对一的关系(one-to-one) 出版商模型:出版商有名称,所在城市以及email. 书籍模型: 书籍有书名和出版日期,一本书可能会有多个作者,一个作者也可以写多本书,所以作者和书籍的关系就是多对多的关联关系(many-to-many);一本书只应该由一个出版商出版,所以出版商和书籍是一对多关联关系

Django 09-1模型层 查询(分组、聚合)

Django 查询(分组.聚合) 一.聚合查询 # 聚合函数的使用场景 -- 单独使用:不分组,只查聚合结果 -- 分组使用:按字段分组,可查分组字段与聚合结果 # 导入聚合函数 from django.db.models import Avg, Max, Min, Count, Sum 单独聚合查询:aggregate(*args,**kwargs) # 语法: aggregate(别名=聚合函数('字段')) # 规则: 1.可以同时对多个字段进行聚合处理:aggregate(别名1=聚合函

pandas 学习 第11篇:DataFrame-数据处理(分组、聚合、窗口、相关、统计)

数据处理的目的是为了数据分析,下面分享常用的数据分析中会用到的函数. 一,分组和聚合 groupby用于对数据分组,分组之后可以直接调用聚合函数求值:agg()函数把分组和调用聚合函数集成到一个函数来实现: DataFrame.groupby(self, by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs) DataFrame

pandas分组与聚合

Pandas分组与聚合 分组 (groupby) 对数据集进行分组,然后对每组进行统计分析 SQL能够对数据进行过滤,分组聚合 pandas能利用groupby进行更加复杂的分组运算 分组运算过程:split->apply->combine 拆分:进行分组的根据 2.应用:每个分组运行的计算规则 3.合并:把每个分组的计算结果合并起来 示例代码: import pandas as pd import numpy as np dict_obj = {'key1' : ['a', 'b', 'a'

分组与聚合数据

GROUP BY子句,HAVING子句. 聚合函数:COUNT();SUM();AVG();MAX();MIN(). 1.GROUP BY子句的应用 select state from MemberDetails group by state; --严格来说,select distinct也能完成这个任务.NULL值也能够被列出. select state from MemberDetails where state in('Mega State','Goldern State','New St

mysql 数据库笔记-基本查询(分组、聚合函数)

SELECT COUNT(*) FROM T_Employee WHERE FAge=23;  //查看人数 ALTER TABLE T_Employee ADD FSubCompany VARCHAR(20); ALTER TABLE T_Employee ADD FDepartment VARCHAR(20);  //为T_Employee表增加两列 UPDATE T_Employee SET FSubCompany='Beijing',FDepartment='Development' W

Oracle_SQL(2) 分组与聚合函数

一.聚合函数1.定义:对表或视图的查询时,针对多行记录只返回一个值的函数.2.用途:用于select语句,HAVING条件二.5种聚合函数1.SUM(n) 对列求和 select sum(sal) from emp; select deptno,sum(sal) from emp group by deptno;2.AVG(n) 对列求平均值 select avg(sal) from emp; select deptno,avg(sal) from emp group by deptno;3.M

java使用elasticsearch分组进行聚合查询(group by)

java连接elasticsearch 进行聚合查询进行相应操作 一:对单个字段进行分组求和 1.表结构图片: 根据任务id分组,分别统计出每个任务id下有多少个文字标题 1.SQL:select id, count(*) as sum from task group by taskid;   java ES连接工具类 public class ESClientConnectionUtil { public static TransportClient client=null; public f

mysql 分组和聚合函数

Mysql 聚集函数有5个: 1.COUNT() 记录个数(count(1),count(*)统计表中行数,count(列名)统计列中非null数) 2.MAX() 最大值 3.MIN() 最小值 4.AVG()平均值 5.SUM() 求和 聚集函数常常和分组一起工作. 1.创建分组 select name, max(age) from stu group by name; 2.过滤分组 select name, max(age) from stu group by name having mi