Django:群组元素的数量

时间:2014-07-17 11:16:05

标签: django

我们如何通过Django 1.5 ORM实现以下目标:

SELECT TO_CHAR(date, 'IW/YYYY') week_year, COUNT(*) FROM entries GROUP BY week_year;

编辑:cf。如果您需要加入,请Follow up: Count of Group Elements With Joins in Django

1 个答案:

答案 0 :(得分:2)

我最近不得不这样做。

您需要通过Django的week_year添加extra列,然后您可以在values方法中使用该列。

......这不是显而易见但是如果你然后使用annotate Django会GROUP BY values子句中提到的所有字段(如此处的文档所述{{3} })

所以你的代码应该是这样的:

Entry.objects.extra(select={'week_year': "TO_CHAR(date, 'IW/YYYY')"}).values('week_year').annotate(Count('id'))