Django:组元素计数

标签 django

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

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

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

最佳答案

我最近不得不做这样的事情。

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

...这并不明显,但如果您随后使用annotate,Django 将会对values 子句中提到的所有字段进行GROUP BY(如此处文档中所述 https://docs.djangoproject.com/en/dev/topics/db/aggregation/#values )

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

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

关于Django:组元素计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24802065/

相关文章:

Python - 将 XLSX 转换为 PDF

mysql - Django 无法连接到数据库。

Django 性能瓶颈

SQL在一个请求中计算购物车的价格

python - Django,自定义模板过滤器 - 正则表达式问题

python - Django -- 单个queryset(大数据集)中每个对象的最新相关状态记录

Django Admin 不使用 ModelManager 的创建方法

python - 将 Django 用户与 Google Apps 同步,无需使用 Monkeypatching

python - 数据模型依赖,我可以简化这些对象吗?

python - django webfaction : No module named dateutil. relativedelta