Django 查询模型 - GROUP BY、MIN、MAX

Posted

技术标签:

【中文标题】Django 查询模型 - GROUP BY、MIN、MAX【英文标题】:Django query model - GROUP BY, MIN, MAX 【发布时间】:2015-12-10 06:25:26 【问题描述】:

我在将查询传输到 django 时遇到问题。 在 sqlite3 中它看起来像这样:

SELECT A, MIN(B), MAX(B) from table GROUP BY A

这将输出来自 A 的唯一值以及来自 B 的一系列值 关于如何解决这个问题的任何提示?在 django 中甚至有可能吗?

【问题讨论】:

【参考方案1】:

您可以将values() 用于GROUP BY,将annotate() 用于MINMAX

from django.db.models import Min, Max

MyModel.objects.values('A').annotate(min_b=Min('B'), max_b=Max('B'))

您将获得一个字典列表,其中包含键 Amin_bmax_b

【讨论】:

以上是关于Django 查询模型 - GROUP BY、MIN、MAX的主要内容,如果未能解决你的问题,请参考以下文章

带有注释的Django查询集,为啥将GROUP BY应用于所有字段?

Django ORM 查询 GROUP BY 由 MAX 组合的多个列

Django 相当于 COUNT 和 GROUP BY

Django中GROUP BY中注释的聚合

在 Django 中使用带有 GROUP BY 子句的 COUNT(DISTINCT 字段)

django模型orm进行group by