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 に答える