问题标签 [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 ORM,多列的总和
我有一个关于我们如何按多列的 SUM 过滤的问题。
例子:
而且我需要过滤 i1、i2、i3 的总和小于 200 的对象。我尝试通过以下方式实现它:
谢谢。
python - Django 嵌套聚合与 group_by
我有一个查询
这是我获取每个日期的指标总和并显示按周分组的平均结果的方式。不使用原始查询的 Django ORM 如何获得相同的结果。
到目前为止,我尝试了raw()
这个查询。我也可以得到内部的select
结果
django - 与 django 不同的无效
我尝试在我的 Django 项目中获取汽车列表,但我遇到了 ORM 问题
使用 Car.objects.all() 我有一个列表:
我想要的是:
然后,所有汽车的名称都是不同的,无论车主是谁
我尝试过类似的东西
但我仍然拥有所有汽车。有人可以帮我解决这个问题吗?文档建议注释和聚合,但仍然很难理解。
django-models - django:SQL UNION 或与查询集连接:与注释一起使用时无法正常工作
我有以下两个查询集books1 和books2。在两者上,我都使用 annotate 添加另一列,book1 的常数为 10,books2 的常数为 30。问题是在我连接查询集之后,最终集显示注释值 = 10,即使对于 books2
我所看到的:
原因是,用于组合的 sql 如下。当我尝试访问 combine[0].name 时,我得到了这个。它负责 WHERE 部分,但不负责注释部分。它使用 10 AS "sample_var" 作为组合查询集,这是不对的,这就是上表中所有显示 10 的原因。
我认为如果联合正确发生,sql应该是:
django - Django中的嵌套子查询
使用子查询进入深水区。我有一套Carpark
s。Carpark
s 有多个Booking
s。Bookings有很多BarrierActivity
记录,就是关口的各种来来去去的事件。这些都是堆栈中的简单 FK。
预订可能会到达,但屏障摄像头无法识别它。一名工作人员会给他们打电话,但这意味着系统由于某种原因失败了。这就是我在这里想要做的。算出我的预订中有多少是通过自动方式获得的。我知道还有很多其他方法可以做到这一点,但我想用一个基于子查询的查询集来做到这一点。
我的目标相当简单。BarrierActivity
注释 0 或 1 以显示每个是否存在“条目” Booking
。注释这些值的平均值,每Carpark
。
第一部分很好。我可以在和之间做一个简单的Exists()
,然后每个预订都有 0 或 1:BarrierActivity
Booking
再一次,这很好用。但是一旦我尝试扩大另一层(所以看Carpark
而不是Booking
)......
...我得到了 Subquery-error-of-doom: more than one row returned by a subquery used as an expression
。bookings
子查询显然返回了太多,但我如何在它到达最外层子查询之前聚合它?
我已经尝试了很多事情,但是这里将平均值重新组织到子查询中。同样的错误:
python - Django注释外键的外键计数
我有三个主要模型:
我的最终目标基本上是尝试根据它所连接的属性来推断客户参与度最高的分支。
我确信最好的方法是使用 Django 的聚合使用 annotate,但我不确定如何做到这一点。我可能不得不extra
改用。
我知道我需要类似的东西
Client.objects.annotate(branch_count=Count('property__branch'))
,但我需要以某种方式为附加到每个分支的属性添加过滤。
另一种方法也许是利用Collections.Counter
这将构建一个计数字典,然后我将使用它来查找任何一个客户端计数最高的分支。
python - Django 查询求和 ArrayFields 的长度
我有这个模型:
我正在尝试弄清楚如何在 Django 中执行与此 SQL 查询等效的操作:
- 我试过了
extra(select={codes_len':'cardinality(codes)'})
,但你不能annotate
或aggregate
超过一个extra
领域。 - 我试过了
annotate(Sum("cardinality('codes')"))
,但cardinality('codes')
不是模型上的一个字段。 - 我研究了编写一个自定义聚合字段,它结合了
Sum
和cardinality
,但看起来……很脆弱。 - 我在文档中发现
__len
确实可以在 上正常工作ArrayField
,但在annotate(Sum('codes__len'))
. - 我排除了原始 SQL,因为有很多
WHERE
语句(这里省略)使得这个查询难以手动重建。
在这一点上,我想我别无选择,只能在模型中添加一个字段长度的codes
字段并弄乱以save()
使其保持同步。
真的没有别的办法了吗?我错过了什么吗?
django - Django Queryset - 如何使用 prefetch_related 对相关模型进行数学运算?
我有三个模型:
qty
我想通过获取所有相关的 ItemParts 并将它们乘以它们的相关 Items来告诉每个 Variety 有多少被制成了in_stock
Items。
我已经做到了这一点:
这行得通吗?它会将乘积相加,还是简单地将总和相乘?
django - Django 聚合多个对象的查询值
在我的项目中,我有一个名为的模型Organization
,它可以有多个Campaign
's. 然后每个广告系列可以有多个donor
's。希望在这里澄清一下我的模型是什么样的:
我想做的是展示一个活动,然后显示捐赠者的所有金额的总和 ( donor.amount
)。例如,如果“Campaign1”有三个捐赠者,每个人捐赠了 5 美元,那么在我的模板中它将显示:“Campaign1:15 美元”。
关于我如何做到这一点的任何想法?我正在考虑在我的模板中使用反向关系,但您不能以这种方式创建聚合。谢谢你的帮助。
django - django 使用基于查询的聚合值注释模型
假设我有以下模型结构:
我正在尝试从 ParentViewSet
恢复以下内容:
- 孩子的数量。
- 当 'state' 为 True 时,'num' 字段的总和。
我可以执行以下操作:
这给了我 (1) 但不是 (2) 它给了我所有孙辈的总和。如何在确保所有Parent
对象仍在 QuerySet 中的同时适当地过滤孙子?