使用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入门篇之列表和元组
Oct 17 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
python 实现屏幕录制示例
Dec 23 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
python实现删除列表中某个元素的3种方法
Jan 15 Python
python向企业微信发送文字和图片消息的示例
Sep 28 Python
python利用pytesseract 实现本地识别图片文字
Dec 14 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 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
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
php车辆违章查询数据示例
2016/10/14 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
2020/10/27 PHP
PHP 实现链式操作
2021/03/09 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
RealTek面试题
2016/06/28 面试题
幼儿园教师岗位职责
2014/03/17 职场文书
初中学校军训方案
2014/05/09 职场文书
运动会通讯稿300字
2015/07/20 职场文书
初中政治教学工作总结
2015/08/13 职场文书