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

django - Django中的嵌套注释

我有三个模型

如何打印具有“关联”ModelC 对象数量的所有 ModelA 对象?

输出:

我试过从 ModelA 做一个查询集,如下所示:

但它不起作用。

0 投票
1 回答
82 浏览

mysql - Django选择用户在范围内获得点数

我有这样的表:

现在我想计算有多少用户的 SUM(points) 介于 1 和 80 之间、81 和 140 之间等。我怎样才能得到它?在 SQL 中,它看起来只能通过嵌入式 SQL 查询来完成 - 内部用于使用 HAVING 子句进行分组,外部用于计算结果集中的行数。

0 投票
1 回答
397 浏览

python - Django 相关 _set 与 order_by 显示重复

使用 Django 1.7,在我看来使用以下代码:

当我尝试这个时,我得到汽车的重复结果(例如两次汽车#3),具体取决于模型的数量。我不想要这个。

但是,当我使用时cars = driver.car_set.all(),重复的结果不存在。但我希望我的汽车清单能够按market_date.

有关如何解决此问题的任何指示?我尝试使用 aggregate() 和 distinct() 但不幸的是并没有解决问题(或者我做错了什么)。

我的尝试distinct()

  • driver.car_set.order_by('model__market_date').distinct()导致重复
  • driver.car_set.order_by('model__market_date').distinct('model__market_date')导致重复
  • driver.car_set.order_by('model__market_date').distinct('pk')产量Exception Value: SELECT DISTINCT ON expressions must match initial ORDER BY expressions
0 投票
2 回答
2540 浏览

django - 如何在 Django 中检索聚合查询的整数?

这可能是一个非常愚蠢的问题,但我如何使用下面的查询检索整数?

如果我在模板中执行 {{ staravg }},我会得到 {'stars__avg': 3.3333333333333335}。我知道我可以使用某种模板过滤器来检索 3.333,但是必须有一种更简单的方法来检索 Integer 对吗?星星来自 IntegerField 仅供参考。

0 投票
1 回答
44 浏览

python - Django 聚合转义 unicode 字符串?

我尝试在具有 unicode 文本的数据库上使用聚合,它显示了 unicode 对象,其中 unicode 字符再次编码。聚合后如何显示 unicode 文本?

0 投票
1 回答
283 浏览

mysql - Django 1.6 + MySQL:键入 Cast MySQL 变量以搜索 Max、Avg

我的模型有点像

现在,这里current_value表示存储为 VarChar 的 Float 中的值,以及存储为 unixtime 的时间

在尝试获取 Max 和 Average 值时,current_value我得到了意想不到的结果,因为对于 Max,MySQL 会进行基于字符串的比较,其中'100' value < '9.99'在 Float 中采用了不正确的 wrt 值。

我试过了 :

它提供了不正确的结果。

然后看:HOW select min from cast varchar to int in mysql

我考虑过提供查询集extra

但这只是提供了一个单一的价值,而不是想要的结果。这转换为 SQL

performance_utilizationstatus订购performance_utilizationstatussys_timestamp降序;

但是工作代码需要一个 GROUP BY on (device_name, service_name, data_source)

分组依据performance_utilizationstatusdevice_name, performance_utilizationstatus. service_name, performance_utilizationstatus. data_source 订购方式performance_utilizationstatussys_timestamp降序;

如何添加 GROUP BY CLAUSE ?

在这里使用annotate不起作用

1111, 'Invalid use of group function'

或者

ERROR 1056 (42000): Can't group on 'max_val'

RAW SQL 会是最后的手段吗?

0 投票
1 回答
56 浏览

python - 使用 Django,我如何在单个查询中实现这一点?

我有以下模型:

鉴于now = datetime.now(),我想检索now介于active_at和之间的所有记录active_at + duration

我正在使用 Django 1.8。这是DurationField 文档

0 投票
1 回答
1221 浏览

django - Django 聚合选择

我有以下模型:

现在我有 VotingRound 的实例,我想知道每个值代表了多少次。这可以通过 collections.Counter 轻松完成:

现在我想知道是否有办法使用 Django 聚合技术来做到这一点......

我找到了这个模块,但在使用它之前,我想知道是否有本地方法可以做到这一点。

0 投票
6 回答
89891 浏览

python - 如何在 Django 中过滤对象以进行计数注释?

考虑简单的 Django 模型EventParticipant

使用参与者总数注释事件查询很容易:

如何用过滤的参与者数量进行注释is_paid=True

我需要查询所有事件而不管参与者的数量,例如我不需要按带注释的结果进行过滤。如果有0参与者,那没关系,我只需要0带注释的值。

文档中的示例在这里不起作用,因为它从查询中排除对象,而不是用0.

更新。Django 1.8 有新的条件表达式特性,所以现在我们可以这样做:

更新 2. Django 2.0 具有新的条件聚合功能,请参阅下面接受的答案

更新 3。对于 Django 3.x,请查看下面的答案

0 投票
1 回答
881 浏览

sql - Django注释查询中错误的GROUP BY字段

原来很尴尬的单车模型参考引起的问题:

现在,当我尝试对查询进行注释时,它总是使用 GROUP BY a 的 LEFT OUTER JOIN 的 id(下例中的T3.id)而不是a.id

例子:

生成的 SQL:

我知道我可以做接下来的事情:

  1. 更改模型不做自行车参考(不幸的是现在不能这样做)
  2. 可以使用 .extra() 代替注释(我会尽量避免)
  3. 删除 .select_related() 调用(由于性能问题不能这样做)

UPD:使用 GROUP BY T3.id将排除结果,其中 ab == None

对我来说最好的解决方案是在 GROUP BY 子句中指定正确的字段,但我不知道如何。可能吗?有没有其他方法可以解决这个问题?谢谢。