问题标签 [django-aggregation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django聚合:在一个日期范围内分组和求和
我每天都会获取一些用户统计数据并将它们记录在一个模型中,如下所示(为简单起见,去掉了不相关的部分):
如上所示,每个用户都属于一个组。
如何获得每个用户在某个日期范围内follower_count
每个组的总和?
换句话说,使用这些模型构建如下数据结构的最佳方法是什么?是否可以使用单个聚合查询来完成?
谢谢你。
django - 在 Django 1.8 中实例化聚合的 SQL 实现
我一直致力于将使用 Django 1.6 的现有代码库更新到 Django 1.8。在此过程中,我一直面临聚合的特殊问题。在这段代码中,PGDAggregate类有一个方法add_to_query旨在实例化聚合的 SQL 实现并将其设置为类变量(聚合),我将使用它来调用默认 SQL 聚合中的as_sql方法(django/db .models.sql.aggregates.Aggregate) 来自另一个文件。
我的代码(第一个文件,我如何实现聚合):
这就是我尝试使用第二个文件中的聚合属性(默认 SQL 聚合的实例)来调用as_sql方法的方式。
我在这个实现中得到的错误(在 l:6 中)是,
异常“BinSort”对象没有属性“聚合”
作为调试步骤,我尝试检查 BinSort 实例是否具有属性“聚合”,使用
这使我返回了错误。但是,当我尝试通过从 add_to_query 方法内部打印聚合属性来检查时,我可以看到打印的属性。此外,我已经按照 Django 1.8 文档中指定的方式实现了这一点,https://github.com/django/django/blob/stable/1.8.x/django/db/models/aggregates.py#L46
python - 注释 SUM 聚合函数导致 Django 中的“无”值
做我的第一个真正的 Django 项目,需要指导。
背景: 我的项目是一个 reddit 克隆。用户提交链接+文本。访客赞成或反对。有一个 social_ranking 算法,每 2 分钟运行一次,作为后台脚本,根据网络投票和内容的新鲜度重新排列所有提交的内容。相当香草的东西。
问题:
Ordering byvotes
无法正常工作,因为votes
被初始化为None
而不是0
. 这会导致有None
投票的提交排名低于有反对票的提交。我已经调试了这个问题好几天了——没有运气。
细节:
我已经覆盖了我的模型的模型管理器以将Sum
聚合函数注释到查询集,然后按“社会等级”和投票对所述查询集进行排序。
下面是我的models.py。我正在使用Django 1.5
,因此您在此处看到的某些内容可能与 1.8 不对应(例如get_query_set
vs get_queryset
):
如果需要,以下是我的views.py中的相关部分:
谁能阐明我需要做些什么来解决“ None
”问题?提前致谢。
django - 计算时间段的平均汇率
在 Django 中,我有类似于此示例的模型:
让我们简化一下,假设我们只有一种货币,ExchangeRate
表格如下所示:
请注意,这是简化数学运算的示例!
在这个表中,数据密度是每月一次,一个月的有效记录是例如 whenstart_date = 2014.03.01
和end_date = 2014.04.01
,所以start_date
是包含的和end_date
不包含的。
我想计算时间段的平均汇率:
在 Django 中,我写:
在此查询之后,我收到的值4.5000
从数学原因是正确的,但当您需要注意时间范围时是错误的。
正确答案是4.000
。
我只是想出了这个解决方案来用这个公式注释额外的列,然后计算这个列的平均值:
在哪里:
Abs
是绝对值的函数abs()
months
是计算两个日期之间月份的函数months_between()
greater
,smaller
是从参数中相应地选择更大和更小的值的函数 -greatest()
,least()
ER
表示来自ExchangeRate
- 例如的列F('exchange_rate')
我正在使用9.3 PostgreSQL DB和Django 1.8.4。
也许有一个简单的功能?
也许我过于复杂了?
django - Django ORM:过滤日期时间字段的时间增量
我正在尝试根据两个DateTimeField
s 的时间差来获取帖子,例如,在发布后不到 10 分钟内被删除的帖子。
拿着上面的模型,我试过了;
并得到了一个TypeError: expected string or buffer
. 然后我认为这可能是类型的变化(DateTime 对象产生 Time 对象)所以我尝试了ExpressionWrapper
:
但这也导致了同样的异常。
任何帮助深表感谢。
编辑
根据@ivan 的建议,我尝试DurationField()
了。我不再得到异常,但增量始终是0
.
python - 如何在 Django 中计算所有具有精确字段值的 ForeignKey 模型?
我不确定这是否可能,但我想计算与具有确切 vote_type 属性的模型相关的所有投票。
这是模型:
我用它来计算所有选票:
并想也许我可以用它来实现我想要的:
但似乎我不能在这里使用 filter() 语法。
我正在使用 Django 1.8.4。
django - 使用多个字段使用计数注释 Django 查询集
这是我的模型的简化版本:
我想做的是通过Flight
对象的某些字段的公共值对对象进行分组,并使用相应的航班计数对组进行注释,如文档here中所述。
当只考虑一个领域时,我知道如何做到这一点。例如,与
我得到这样的东西:
这意味着有 21 个Flight
对象的airline
字段为'First Airlines'
,依此类推。
但是我如何概括来计算多个字段并组合成一个带注释的查询集,将来自不同字段的值视为同一个字段?
例如,假设我有 3 个从洛杉矶到纽约的航班,另外有 2 个回程航班(有 3 个Flight
具有 origin'LAX'
和 destination的对象'JFK'
,以及 2 个Flight
具有 origin'JFK'
和 destination的对象'LAX'
)。我怎样才能得到这个:
python - 如何在 django 中聚合数据?
我有模型,其实例每小时创建一次:
我想获得上个月几天的平均值,例如 30 个包含每天平均值的实例。如何实现?现在我写了这个方法:
我应该怎么做才能实现功能?
django - 多对多中的 Django 模型聚合匹配计数
有具有 ManyToMany 字段的模型:
例如我们有这样的数据集:
我正在寻找一种方法来聚合 MyModel 按相同数字的数量。
fe MyModel 对象在他们的 numbers_set 中至少有 3 个相同的数字。
django - ManyToMany的Django模型组匹配计数
我正在开发一个简单的关键字分组工具。我想按 SERP 中相同网址的数量对短语进行分组。
短语代表搜索引擎中的关键字。SerpEntry 代表网站上的链接。
我正在寻找一种方法来选择在 SerpEntry 中至少具有 N 个相同 url 的短语。
这是我的模型:
你对如何做到这一点有什么建议吗?