【问题标题】:Aggregate query results by custom field in Django ORM通过 Django ORM 中的自定义字段聚合查询结果
【发布时间】:2012-09-06 00:54:11
【问题描述】:

我们有一个简单的模型:

class Post(models.Model):
    created = models.DateField()     
    title = models.CharField(max_length=210) 
    content = models.TextField()

有没有办法用 Django ORM 实现 SQL 查询?

SELECT YEAR(created), COUNT(*)
FROM Post
GROUP BY YEAR(created)

我可以编写原始 SQL,但我想避免它......

【问题讨论】:

    标签: sql django django-models


    【解决方案1】:

    Django 提供了它自己的查询集,让您可以像这样进行查询

       Post.objects.values('created').annotate(dcount=Count('created'))
    

    别忘了导入

    from django.db.models import Count
    

    无论如何,您也可以像

    一样检查您的查询
    >>> queryset = MyModel.objects.all()
    >>> print queryset.query
    SELECT "myapp_mymodel"."id", ... FROM "myapp_mymodel"
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多