Sta*_*kis 8 django orm aggregate
我有一个查询基本上"计算X类型的所有项目,并返回不止一次存在的项目及其计数".现在我有这个:
Item.objects.annotate(type_count=models.Count("type")).filter(type_count__gt=1).order_by("-type_count")
Run Code Online (Sandbox Code Playgroud)
但它什么都不返回(所有项目的计数都是1).我究竟做错了什么?
理想情况下,它应该得到以下内容:
Type
----
1
1
2
3
3
3
Run Code Online (Sandbox Code Playgroud)
并返回:
Type, Count
-----------
1 2
3 3
Run Code Online (Sandbox Code Playgroud)
Dan*_*man 16
为了计算每种类型的出现次数,您必须按type字段分组.在Django中,这是通过使用values来获得该字段来完成的.所以,这应该工作:
Item.objects.values('group').annotate(
type_count=models.Count("type")
).filter(type_count__gt=1).order_by("-type_count")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8848 次 |
| 最近记录: |