使用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中的各种函数的使用
May 24 Python
Python中字典和集合学习小结
Jul 07 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
详解Django的model查询操作与查询性能优化
Oct 16 Python
使用python绘制二元函数图像的实例
Feb 12 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
python实现在一个画布上画多个子图
Jan 19 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
如何写python的配置文件
Jun 07 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
php实现图片缩略图的方法
2016/03/29 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
python的多重继承的理解
2017/08/06 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python生成数字图片代码分享
2017/10/31 Python
python Pygame的具体使用讲解
2017/11/03 Python
numpy找出array中的最大值,最小值实例
2018/04/03 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
python列表的逆序遍历实现
2020/04/20 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
三行辞职书范文
2015/02/26 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
spring boot实现文件上传
2022/08/14 Java/Android