问题标签 [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 回答
44 浏览

django - Django 按字段分组 FK

我正在开发一个简单的关键字分组工具。

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

我正在寻找一种按 SerpEntry url 对短语进行分组的方法。

这是我的模型:

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

我想要实现的结果示例:

0 投票
0 回答
417 浏览

django - 使用方法作为聚合字段

我有两个模型如下(为简单起见):

我想写一个方法,让我知道银行里人们的“总净资产”,比如:

但当然 Django 抱怨这样的字段不存在:

django.core.exceptions.FieldError:无法将关键字“get_net_worth”解析为字段。

有没有办法实现这一点而不必在数据库中显式存储“净资产”?

编辑:

万一你想知道,一个人可以做

但我必须以某种方式对每个“人”使用该get_net_worth方法。

编辑2:

只是为了澄清一下:这两个不是我的实际模型,它们是我想要实现的过度简化的示例,而我本质上想要做的不是在两个字段之间进行算术运算,而是使用模型的方法作为聚合函数的字段(当然,方法可以在返回值之前做一些更复杂的事情),因此这个不是另一个问题的重复。

0 投票
1 回答
52 浏览

django - 简单的 Django 聚合 - 优化

我正在阅读注释和聚合的开始,我想知道哪种方式最适合完成以下情况:

您想计算查询集中每本书的作者数量。本教程建议以下内容annotate

我的问题是,当您可以使用模型实例方法完成此操作时,为什么要这样做:

一种情况比另一种更好吗?我缺少优化的好处吗?

0 投票
1 回答
188 浏览

django - Django注释:与ModelA不存在多对多关系的ModelB条目计数

在这种特殊情况下,ModelA 是默认的 Django 模型。用户

ModelB 实现为:

1.对于每条ModelB记录,统计与其没有关系的User记录

我设法使用:

它有效,但感觉就像一个黑客。有没有更好的方法来做到这一点(同时仍在使用annotate())?

2.带过滤

我修改了之前的查询,以使用当前登录的用户进行过滤,这样我就可以为每个用户显示自定义内容。user_count无论登录用户如何,我都打算保持与查询 #1 中相同的值:

编辑:过滤完成后按预期工作annotate

仍在寻找比User.objects.count()-Count('user')为每条记录计算非相关用户记录更好的方法ModelB

感谢您的帮助!

0 投票
1 回答
354 浏览

python - Django:按天计数,没有记录的天数为 0

我想获得超过 14 天的记录数

我目前正在做:

但是,这并没有给我有 0 个邀请的日子。我该如何做到这一点?

0 投票
0 回答
402 浏览

django - Django 按连续天分组(周五、周六、周日)

我有一个每天都会发生的事件。这是模型

我正在尝试按连续天(周五、周六、周日)汇总事件。

注意:周五和周六是同一周,周日是下一周。使用原始查询(postgres)我可以使用以下查询来聚合

但是在 django 我找不到复制查询的方法

但是,此查询选择同一周内的星期日、星期五和星期六。

0 投票
0 回答
231 浏览

django - Django查询聚合与自身连接

使用以下模型,我想选择在验证状态下拥有最多帖子的 root 用户(在单个查询中或至少以优化的方式)。在我的情况下,root 用户不是直接作者,我想在 root 用户上聚合子用户作者。

这个问题可能与同一模型上缺少后向关系有关?

0 投票
7 回答
50060 浏览

django - Django 1.11 注释子查询聚合

这是一个前沿功能,我目前正在使用它并很快就流血了。我想将子查询聚合注释到现有查询集上。在 1.11 之前执行此操作意味着自定义 SQL 或锤击数据库。这是 this 的文档,以及其中的示例:

他们在汇总上进行注释,这对我来说似乎很奇怪,但无论如何。

我正在为此苦苦挣扎,所以我将其直接还原为我拥有数据的最简单的真实示例。我有Carpark包含许多Spaces 的 s。如果这让你更快乐,请使用Book→Author,但 - 现在 - 我只想使用Subquery* 来注释相关模型的计数。

这给了我一个可爱的印象ProgrammingError: more than one row returned by a subquery used as an expression,在我的脑海中,这个错误非常有意义。子查询返回带有注释总数的空格列表。

这个例子表明某种魔法会发生,我最终会得到一个可以使用的数字。但这不是在这里发生的吗?如何注释聚合子查询数据?

嗯,我的查询的 SQL 中添加了一些东西……

我建立了一个新的停车场/空间模型并且它工作。所以下一步是找出是什么毒害了我的 SQL。在 Laurent 的建议下,我查看了 SQL 并试图使其更像他们在答案中发布的版本。这就是我发现真正问题的地方:

我已经突出显示了它,但它是那个子查询的GROUP BY ... U0."space". 出于某种原因,它正在重新调整两者。调查仍在继续。

编辑 2:好的,只要查看子查询 SQL,我就可以通过 ☹</p> 看到第二组

编辑3:好的!这两种模型都有排序顺序。这些正在执行到子查询。正是这些订单使我的查询膨胀并破坏了它。

我想这可能是 Django 中的一个错误,但没有在这两个模型上删除 Meta-order_by,什么方法可以在查询时取消对查询的排序?


*我知道我可以为这个例子添加一个 Count 注释。我使用它的真正目的是一个更复杂的过滤器计数,但我什至无法让它工作。

0 投票
1 回答
236 浏览

python - 计数条件过滤 - Django

我想计算有问题的所有不正确选择的数量。

我有许多选择的查询:

现在,当我只想将不正确的选择过滤到 Count 函数中时,它会返回:

无法将关键字“选择”解析为字段。

你知道怎么做吗?

0 投票
1 回答
2602 浏览

mysql - 将 sql 转换为 Django ORM

如何将此 SQL 转换为 Django ORM

我尝试了注释,但不成功