【问题标题】:How to write query of group by如何编写分组查询
【发布时间】:2016-11-07 01:29:29
【问题描述】:

我有一个名为 IssueFlags 的模型,其中包含以下列: id, created_at, flags_id, issue_id, cmets

我想获取唯一 issue_id(最新创建)的数据以及有关 flags_id、created_at 和 cmets 的信息

通过 sql 它是这样工作的:

SELECT  created_at, flags_id, issue_id, comments
FROM Issues_issueflags
group by issue_id

如何在 Django 中做同样的事情?我试图在shell中写一些东西,但是没有属性group by

IssueFlags.objects.order_by('-created_at')

上面只返回有序数据的列表。

【问题讨论】:

标签: django shell group-by


【解决方案1】:

尝试这样做:

from django.db.models import Count
IssueFlags.objects.values('created_at', 'flags_id', 'issue_id', 'comments').order_by('-created_at').annotate(total=Count('issue_id'))

我已经写了annotate(total=Count('issue_id')) 假设您将有多个唯一 issue_id 条目(请注意,您可以在里面进行所有可能类型的聚合,例如 Sum、Count、Max、Avg。此外,已经存在答案,doing group在 django 中。还可以查看 linklink。另外,请阅读 django documentation 以清楚了解何时将 values() 放置在 annotate() 之前以及何时将其放置在之后,以及然后根据您的要求实施学习。

如果您有任何疑问,我们很乐意提供帮助。

【讨论】:

  • 我试过这个,但在响应中我得到了表中的所有行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-06
  • 2023-03-18
  • 1970-01-01
  • 2020-10-04
相关资源
最近更新 更多