【问题标题】:Django query using filter, groupby, count()使用过滤器、groupby、count() 的 Django 查询
【发布时间】:2014-02-12 08:14:22
【问题描述】:

如何为以下mysql查询执行django查询:

This is Django model
class Passengers(models.Model):       
    id = models.CharField(max_length=128)        
    ref = models.CharField(max_length=128)
    orgId = models.ForeignKey(Organization)
    number = models.CharField(max_length=128)

MYSQL
------
SELECT `ref` , count( 'id' )
FROM `dispatcher_passengers`
WHERE `orgId_id` =1
GROUP BY `ref`

我有一个带有 id,ref 列的模型。

我想用'ref'获取计数(id)。

那么我如何以 django 查询集格式编写上述查询。

【问题讨论】:

标签: python mysql django django-queryset


【解决方案1】:

这样怎么样:

refs = Passengers.objects.values('ref')
refs = set(refs)
ref_count = lambda ref: Passengers.objects.filter(ref = ref).count
counts = [ (ref, ref_count(ref)) for ref in refs ]

更新:

from django.db.models import Count
count = Passengers.objects.values('ref').annotate(Count('id')).order_by()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2019-07-29
    • 1970-01-01
    • 2021-12-19
    • 2018-02-21
    • 1970-01-01
    相关资源
    最近更新 更多