我们如何通过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。
答案 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'))