django之聚合函数之分组查询
聚合查询aggregate
1 | # 计算图书的最高价格, 最低价格, 平均价格, 总价 |
聚合查询Count
1 | # 统计每一本书作者的个数 |
以谁group by 就以谁为基表
1 | # 统计每一个出版社最便宜的书 (以谁group by 就以谁为基表) |
综合训练
1 | # 统计书的名字是py开头的书籍的作者个数 |
分组规律
values在前,表示group by 不写代表id分组 在后,表示取值
1 | # 查询各个作者出的书的总价格 |
1 | # 统计大于一个作者的图书 |
filter在前,表示where条件,在后表示having
1 | # 查询所有作者写的书的总价格大于30的 |
先where和先group by 无所谓先后
1 | ret = Author.objects.all().values('name').filter(id__gt=2).annotate(s=Sum('id')).values('name','s') |