使用django的ORM框架按月统计近一年内的数据方法
2019-07-18 12:02
2571 查看
如下所示:
# 计算时间 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框架按月统计近一年内的数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- 在Django的模板中使用认证数据的方法
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- 在Django的模板中使用认证数据的方法
- mysql 按月分组累计统计数据,纯sql实现的一个方法
- django中使用POST方法 获取POST数据
- django框架使用orm实现批量更新数据的方法
- 由计算机产生0-9之间的随机整数,用户输入猜测的数据,统计用户猜测的次数。产生随机数可以使用Math.rangom()静态方法,该方法返回正的double类型浮点数位于(0.0 1.0】间。
- django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- django使用ajax post数据403错误解决方法 (tip)
- 【转】Django中使用POST方法获取POST数据
- Django使用Mysql数据库已经存在的数据表方法
- Django页面数据的缓存与使用的具体方法
- oracle数据库按月、年查询统计数据的方法
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- Mysql 中使用DATE_FORMAT函数按月、周统计数据
- django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- 四【用django2.0来开发】后台会员管理(二) ModelForm表单的使用方法以及数据验证