问题标签 [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.

0 投票
1 回答
1840 浏览

django - Django聚合:在一个日期范围内分组和求和

我每天都会获取一些用户统计数据并将它们记录在一个模型中,如下所示(为简单起见,去掉了不相关的部分):

如上所示,每个用户都属于一个组。

如何获得每个用户在某个日期范围内follower_count每个组的总和?

换句话说,使用这些模型构建如下数据结构的最佳方法是什么?是否可以使用单个聚合查询来完成?

谢谢你。

0 投票
1 回答
166 浏览

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

0 投票
2 回答
11867 浏览

python - 注释 SUM 聚合函数导致 Django 中的“无”值

做我的第一个真正的 Django 项目,需要指导。

背景: 我的项目是一个 reddit 克隆。用户提交链接+文本。访客赞成或反对。有一个 social_ranking 算法,每 2 分钟运行一次,作为后台脚本,根据网络投票和内容的新鲜度重新排列所有提交的内容。相当香草的东西。

问题: Ordering byvotes无法正常工作,因为votes被初始化为None而不是0. 这会导致有None投票的提交排名低于有反对票的提交。我已经调试了这个问题好几天了——没有运气。

细节: 我已经覆盖了我的模型的模型管理器以将Sum聚合函数注释到查询集,然后按“社会等级”和投票对所述查询集进行排序。

下面是我的models.py。我正在使用Django 1.5,因此您在此处看到的某些内容可能与 1.8 不对应(例如get_query_setvs get_queryset):

如果需要,以下是我的views.py中的相关部分:

谁能阐明我需要做些什么来解决“ None”问题?提前致谢。

0 投票
3 回答
1318 浏览

django - 计算时间段的平均汇率

在 Django 中,我有类似于此示例的模型:

让我们简化一下,假设我们只有一种货币,ExchangeRate表格如下所示:

请注意,这是简化数学运算的示例!

在这个表中,数据密度是每月一次,一个月的有效记录是例如 whenstart_date = 2014.03.01end_date = 2014.04.01,所以start_date是包含的和end_date不包含的。

我想计算时间段的平均汇率:

[2014.06.01;  2012.09.01)

这意味着:>= 2014.06.01< 2014.09.01

在 Django 中,我写:

在此查询之后,我收到的值4.5000从数学原因是正确的,但当您需要注意时间范围时是错误的。
正确答案是4.000

我只是想出了这个解决方案来用这个公式注释额外的列,然后计算这个列的平均值:

https://www.codecogs.com/eqnedit.php?latex=\inline&space;Abs&space;\left&space;(&space;\frac{months&space;\left&space;(&space;greater(ER_{start_date}\&space;,\&space ;start_date),&space;smaller(ER_{start_date}\&space;,\&space;end_date)&space;\right&space;)&space;}{months(start_date\&space;,\&space;end_date)}&space;\right&space;) &space;*&space;ER_{exchange_rate}

在哪里:

我正在使用9.3 PostgreSQL DBDjango 1.8.4

也许有一个简单的功能?
也许我过于复杂了?

0 投票
1 回答
2170 浏览

django - Django ORM:过滤日期时间字段的时间增量

我正在尝试根据两个DateTimeFields 的时间差来获取帖子,例如,在发布后不到 10 分钟内被删除的帖子。

拿着上面的模型,我试过了;

并得到了一个TypeError: expected string or buffer. 然后我认为这可能是类型的变化(DateTime 对象产生 Time 对象)所以我尝试了ExpressionWrapper

但这也导致了同样的异常。

任何帮助深表感谢。

编辑

根据@ivan 的建议,我尝试DurationField()了。我不再得到异常,但增量始终是0.

0 投票
1 回答
660 浏览

python - 如何在 Django 中计算所有具有精确字段值的 ForeignKey 模型?

我不确定这是否可能,但我想计算与具有确切 vote_type 属性的模型相关的所有投票。

这是模型:

我用它来计算所有选票:

并想也许我可以用它来实现我想要的:

但似乎我不能在这里使用 filter() 语法。

我正在使用 Django 1.8.4。

0 投票
1 回答
562 浏览

django - 使用多个字段使用计数注释 Django 查询集

这是我的模型的简化版本:

我想做的是通过Flight对象的某些字段的公共值对对象进行分组,并使用相应的航班计数对组进行注释,如文档here中所述。

当只考虑一个领域时,我知道如何做到这一点。例如,与

我得到这样的东西:

这意味着有 21 个Flight对象的airline字段为'First Airlines',依此类推。

但是我如何概括来计算多个字段并组合成一个带注释的查询集,将来自不同字段的值视为同一个字段?

例如,假设我有 3 个从洛杉矶到纽约的航班,另外有 2 个回程航班(有 3 个Flight具有 origin'LAX'和 destination的对象'JFK',以及 2 个Flight具有 origin'JFK'和 destination的对象'LAX')。我怎样才能得到这个:

0 投票
2 回答
497 浏览

python - 如何在 django 中聚合数据?

我有模型,其实例每小时创建一次:

我想获得上个月几天的平均值,例如 30 个包含每天平均值的实例。如何实现?现在我写了这个方法:

我应该怎么做才能实现功能?

0 投票
1 回答
241 浏览

django - 多对多中的 Django 模型聚合匹配计数

有具有 ManyToMany 字段的模型:

例如我们有这样的数据集:

我正在寻找一种方法来聚合 MyModel 按相同数字的数量。

fe MyModel 对象在他们的 numbers_set 中至少有 3 个相同的数字。

0 投票
1 回答
73 浏览

django - ManyToMany的Django模型组匹配计数

我正在开发一个简单的关键字分组工具。我想按 SERP 中相同网址的数量对短语进行分组。

短语代表搜索引擎中的关键字。SerpEntry 代表网站上的链接。

我正在寻找一种方法来选择在 SerpEntry 中至少具有 N 个相同 url 的短语。

这是我的模型:

你对如何做到这一点有什么建议吗?