Django 笔记十七之 group by 分组用法总结
本文首发于公众号:Hunter 后端
这篇笔记介绍 Django 里面 model 的 group by 对应的一些操作。
用到的 Model 如下:
我们写入几条数据:
本篇笔记的目录如下:
distinct 单个字段
distinct 多个字段
count 字段去重后总数
sum 某个字段总和
group by 分组统计 count
group by 分组统计 max
group by 分组统计 sum
group by 分组统计 count + distinct
1、distinct 单个字段
现在我们需要 user_id 这个字段进行去重处理,获取一个去重后的 user_id 的列表
使用 SQL 的话,大致如下:
使用 QuerySet 语句则是:
2、distinct 多个字段
假设需要对 user_id 和 create_date 这两个字段做去重处理,
使用 SQL 语句如下:
对应的 QuerySet 语句:
3、count 字段去重后总数
比如我们想查看 2022-01-01 这天有多少不同 user_id 值的数据
对应的 QuerySet 为:
4、sum 某个字段总和
我们想查看 2022-01-01 这天 num 字段的数据的总和有多少:
Django 语句:
5、group by 分组统计 count
按照日期统计 user_id 的总数:
Django 语句:
6、group by 分组统计 max
按照日期计算每一天最大的 num 的数据:
Django 语句:
7、group by 分组统计 sum
按照日期计算 num 的总数:
Django 语句:
8、group by 分组统计 count + distinct
如果是对需要对 user_id 进行去重处理的统计,SQL 如下:
Django 语句:
以上就是本篇笔记全部内容,接下来会是几个深入一点的知识点的介绍,比如一个 Model 示例 save() 方法的继承和修改、主键自增和字段更新的操作。
版权声明: 本文为 InfoQ 作者【Hunter熊】的原创文章。
原文链接:【http://xie.infoq.cn/article/d63dac208da485e5c27ddc863】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论