使用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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
Python编程中的for循环语句学习教程
Oct 14 Python
将Emacs打造成强大的Python代码编辑工具
Nov 20 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
python3学习之Splash的安装与实例教程
Jul 09 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
tensorflow自定义激活函数实例
Feb 04 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
python实现图像拼接功能
Mar 23 Python
一篇文章弄懂Python关键字、标识符和变量
Jul 15 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
Apache服务器无法使用的解决方法
2013/05/08 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
JS查看对象功能代码
2008/04/25 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
python实现逆波兰计算表达式实例详解
2015/05/06 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
Python3爬虫全国地址信息
2019/01/05 Python
详解Python locals()的陷阱
2019/03/26 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
个人简历自我评价八例
2013/10/31 职场文书
幼师求职自荐信范文
2014/01/26 职场文书
2015年元旦活动总结
2014/05/09 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
学雷锋日活动总结
2015/02/06 职场文书
会计求职自荐信范文
2015/03/04 职场文书
责任书格式
2019/04/18 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
Nginx HTTP跳转至HTTPS
2022/05/15 Servers
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技