1

我希望在 django 上做一个类似 SQL 的“Group by, Count”。这是我目前的代码进度:

tags = tag.objects.values('tag').annotate(Count('tag')).order_by()

标签类:

class tag(models.Model):
    id = models.IntegerField('id',primary_key=True,null=False)
    question_id = models.ForeignKey(question,null=False)
    tag = models.TextField('tag',null=True)

所以,我的问题是上面的查询是否可以得到可能的类似 SQL 的“Group by, Count”?如果是,我应该如何获得计数值?

4

1 回答 1

1

您可以存储带注释的值:

tags = tag.objects.values('tag').annotate(tag_count=Count('tag')).order_by()
for tag in tags:
    print tag['tag_count']

您也可以在您的 : 中使用带注释的值order_by

tags = tag.objects.values('tag').annotate(tag_count=Count('tag')).order_by('-tag_count')
于 2012-12-24T17:54:57.680 回答