我想计算每个device_id
的最大deployment__release_id
数。我有以下几点:
release_breakdown = DeviceDeployment.objects \
.values('device_id') \
.annotate(release_id=Max('deployment__release_id')) \
.values('release_id')
它给出了我所期望的查询集列表:
<QuerySet [{'release_id': 352}, {'release_id': 352}, {'release_id': 352}, {'release_id': 352}, {'release_id': 352}, {'release_id': 352}, {'release_id': 352}, {'release_id': 351}, {'release_id': 351}, {'release_id': 352}]>
当我想用以下方法计算上述数值时:
release_breakdown = DeviceDeployment.objects \
.values('device_id') \
.annotate(release_id=Max('deployment__release_id')) \
.values('release_id')
.annotate(rcount=Count('release_id'))
我得到以下错误:
Cannot compute Count('release_id'): 'release_id' is an aggregate
我想要的是
<QuerySet [{'release_id': 352, 'rcount': 7}, {'release_id': 351, 'rcount': 2}]>
我怎么能拿到这个
不能对带注释的值使用注释。你知道吗
见docs
您应该将查询修改为以下内容:
应该返回如下列表:
相关问题 更多 >
编程相关推荐