python - Django 聚合问题 - 奇怪的行为
问题描述
我有一个查询活动集,在该模型上有一个关联的 user_id。在此示例中,我有一个基于此语句的查询集,其中包含以下内容
activities.values('user_id').annotate(Min('duration'))
[
{'user_id': 149026, 'duration__min': Decimal('480.0000')},
{'user_id': 149026, 'duration__min': Decimal('454.0000')},
{'user_id': 149026, 'duration__min': Decimal('360.0000')},
{'user_id': 149027, 'duration__min': Decimal('420.0000')}
]
我需要为每个持续时间最短的 user_id 获取活动。我有点困惑为什么下面的以下陈述会返回给我我想要的东西
activities.values('user_id').annotate(Min('duration')).order_by('user_id')
[
{'user_id': 149026, 'duration__min': Decimal('360.0000')},
{'user_id': 149027, 'duration__min': Decimal('420.0000')}
]
为什么 order_by("user_id") 子句会返回特定用户的最低持续时间活动。另外,annotate 之前的 value 子句不应该导致返回的查询为每个唯一的 user_id 有一个带注释的结果吗?
解决方案
推荐阅读
- vba - excel vba 文件名在 Namespace().CopyHere…and…Namespace().items 上出错
- pandas - Pandas 只从 describe 函数中获取一个单元格
- android - 独特且包罗万象的深层链接
- antlr - 使用标识符时出现 ANTLR4 错误,但使用文字时却没有
- c# - 电报应用程序未呈现 acestream 链接
- swift - 我从属性中获取返回值。可能吗?
- c# - 过滤多个列表值
- while-loop - OCaml - 拒绝负数
- excel - 查找没有第二个值的值
- ruby - Ruby 中将“John Di Bello”转换为“John DI BELLO”的最短方法