当前位置: 首页 > 编程笔记 >

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

咸承教
2023-03-14
本文向大家介绍使用django的ORM框架按月统计近一年内的数据方法,包括了使用django的ORM框架按月统计近一年内的数据方法的使用技巧和注意事项,需要的朋友参考一下

如下所示:

# 计算时间
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()html" target="_blank">方法:

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

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

 类似资料:
  • 本文向大家介绍PHP计算近1年的所有月份,包括了PHP计算近1年的所有月份的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码:  效果图: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 问题内容: 我有一个像这样的简单模型: 我想输出按月细分: 一个月内有多少笔交易() 合并值() 我不确定最好的攻击方法是什么。我已经看到了一些看上去很吓人的额外选择查询,但我的简单想法是告诉我,最好是迭代数字,从任意开始的年/月开始,一直计数到我达到当月,然后简单地抛出查询该月的过滤条件。更多数据库工作-减轻开发人员压力! 什么对你最有意义?有什么好方法可以拉回快速数据表吗?还是我的肮脏方法可能

  • 本文向大家介绍详解Python的Django框架中Manager方法的使用,包括了详解Python的Django框架中Manager方法的使用的使用技巧和注意事项,需要的朋友参考一下 在语句Book.objects.all()中,objects是一个特殊的属性,需要通过它查询数据库。 在第5章,我们只是简要地说这是模块的manager 。现在是时候深入了解managers是什么和如何使用了。 总之

  • 从戏剧!框架文档: Play2.0中没有内置的JPA实现;您可以选择任何可用的实现。例如,要使用Hibernate,只需将依赖项添加到项目中: 我的选择是什么而不是冬眠? 你认为什么最适合留言板网站? 我知道Hibernate有一点开销,对吗?

  • 这是我的代码,从这里采取:计算年龄在JavaScript 它如何继续与月和日,如: 用户生日是:2010/04/29 结果应该是这样的:2岁4个月5天。 演示:http://jsfiddle.net/jFxb5/

  • 本文向大家介绍Yii 框架使用数据库(databases)的方法示例,包括了Yii 框架使用数据库(databases)的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii 框架使用数据库(databases)的方法。分享给大家供大家参考,具体如下: 配置数据库连接 ¶ 开始之前,请确保你已经安装了 PHP PDO 扩展和你所使用的数据库的 PDO 驱动(例如 MySQL 的