Django count和group by顺序问题,解决被自动加入group by主键的问题

django中的数据库查询

Model.objects.values('OSPlatform', 'GroupId').annotate(
                    DeviceStatus=F('Status')).annotate(DeviceCount=Count('*'))

如果values放在annotate前面,实际上的SQL会按照’OSPlatform’, 'GroupId’这两个字段group by;
如果valus放在annotate后面,实际上的SQL只会有默认的group by 主键,有的效果只是限定select 的字段。

所以如果想要group by,且不被加入默认的group by 主键,则values应该放在annotate前。

你可能感兴趣的:(Django,Python,django,sql,数据库)