如何分组和聚合与Django
发布时间:2020-12-14 01:08:22 所属栏目:百科 来源:网络整理
导读:我有一个相当简单的查询我想通过ORM,但不能算出来.. 我有三个型号: 位置(地点),属性(地点可能具有的属性)和评级(也包含得分字段的M2M“通过”模型) 我想选择一些重要的属性,并能够通过这些属性对我的位置排名 – 即所有选择的属性的总分更高=更好。 我可
我有一个相当简单的查询我想通过ORM,但不能算出来..
我有三个型号: 位置(地点),属性(地点可能具有的属性)和评级(也包含得分字段的M2M“通过”模型) 我想选择一些重要的属性,并能够通过这些属性对我的位置排名 – 即所有选择的属性的总分更高=更好。 我可以使用下面的SQL来得到我想要的: select location_id,sum(score) from locations_rating where attribute_id in (1,2,3) group by location_id order by sum desc; 返回 location_id | sum -------------+----- 21 | 12 3 | 11 我可以得到的最接近的ORM是: Rating.objects.filter( attribute__in=attributes).annotate( acount=Count('location')).aggregate(Sum('score')) 哪个返回 {'score__sum': 23} 即所有的总和,不是按位置分组。 有什么办法吗?我可以手动执行SQL,但宁愿通过ORM来保持一致。 谢谢
尝试这个:
Rating.objects.filter(attribute__in=attributes) .values('location') .annotate(score = Sum('score')) .order_by('-score') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- xcode – pageViewController setViewControllers崩溃与“无
- c – 使用std :: ostream打印矢量
- 部署jenkins服务器出现Please wait while Jenkins is getti
- 链路聚合配置
- winform对xml文件的操作
- c# – 为什么Collections.Generic.Queue没有Synchronized方
- ajax – Angular js从工厂返回未定义的对象
- HDU - 3449 Consumer(有依赖的背包问题)
- ruby-on-rails-3 – Google Maps V3 API密钥本地计算机错误
- 16.4 Swift可选链调用下标索引