使用django的ORM框架按月统计近一年内的数据方法


Posted in Python onJuly 18, 2019

如下所示:

# 计算时间
time = datetime.datetime.now() - relativedelta(years=1)
# 获取近一年数据
one_year_data = Data.objects.filter(create_time__gte=time_ago)
# 分组统计每个月的数据
count_res = one_year_data\
			.annotate(year=ExtractYear('create_time'),month=ExtractMonth('create_time'))\
      .values('year', 'month').order_by('year', 'month').annotate(count=Count('id'))
print(count_res)

打印结果:

<QuerySet [{'year': 2018, 'month': 7, 'count': 3}, {'year': 2019, 'month': 5, 'count': 7}, {'year': 2019, 'month': 6, 'count': 161}]>

annotate()方法:

对数据集先进行分组然后再进行某些聚合操作或排序时,需要使用annotate方法来实现。与aggregate方法不同的是,annotate方法返回结果的不仅仅是含有统计结果的一个字典,而是包含有新增统计字段的查询集(queryset)。

以上这篇使用django的ORM框架按月统计近一年内的数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python在windows下实现备份程序实例
Jul 04 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
python实现发送和获取手机短信验证码
Jan 15 Python
python处理按钮消息的实例详解
Jul 11 Python
django ajax json的实例代码
May 29 Python
python统计多维数组的行数和列数实例
Jun 23 Python
Python实现将Excel转换成xml的方法示例
Aug 25 Python
pycharm中使用anaconda部署python环境的方法步骤
Dec 19 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
Python根据指定文件生成XML的方法
Jun 29 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 #Python
django页面跳转问题及注意事项
Jul 18 #Python
django框架模板语言使用方法详解
Jul 18 #Python
Django中间件基础用法详解
Jul 18 #Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 #Python
Django 实现图片上传和显示过程详解
Jul 18 #Python
Django框架模型简单介绍与使用分析
Jul 18 #Python
You might like
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
繁简字转换功能
2006/07/19 Javascript
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
ionic3 懒加载
2017/08/16 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
2018/06/14 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
AI人工智能 Python实现人机对话
2017/11/13 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python中的set实现不重复的排序原理
2018/01/24 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
python3调用windows dos命令的例子
2019/08/14 Python
利用python绘制中国地图(含省界、河流等)
2020/09/21 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
Python如何实现感知器的逻辑电路
2020/12/25 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
.NET面试10题
2014/02/24 面试题
以太网Ethernet IEEE802.3
2013/08/05 面试题
自荐信格式技巧有哪些呢
2013/11/19 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
2015年店长个人工作总结
2015/10/23 职场文书