python - Django Queryset 出现次数
问题描述
我有以下 django 模型...
class Entry(models.Model):
entry_UUID = models.UUIDField()
entry_description = models.TextField()
numeric_value = models.FloatField(null=True, blank=True)
entry_category = models.CharField()
我正在尝试查询数据库 - 我期望 entry_UUID 组和每个组的 numeric_value (Min/Max/Avg) 的一些统计信息和 entry_category 的计数。我不知道 entry_category 的具体值,但我希望它们形成一个集合(例如 {low, med, high})。
我尝试了以下查询:
Entry.objects.filter(
entry_UUID__in = entry_UUIDs).values(
'entry_UUID').annotate(
Avg('numeric_value'),
Min('numeric_value'),
Max('numeric_value'),
Count('entry_category'))
哪个返回...
<QuerySet [{'entry_UUID': UUID('9fcfea6d-9480-595f-1e1f-81130ddc0c99'), 'numeric_value__avg':
51.5089, 'numeric_value__min': 23.174, 'numeric_value__max': 76.421, 'entry_category__count': 4}, {'entry_UUID': UUID('9fcfea6d-9490-595f-1e1f-81130ddc0c99'), 'numeric_value__avg': 5.2882, 'numeric_value__min': 1.282, 'numeric_value__max': 9.7553, 'entry_category__count': 6}]>
对于 entry_category,我希望获取每个值的出现次数,而不是总次数。不知道如何解决这个问题。
谢谢。
解决方案
我认为你需要的可以用这个来实现
Entry.objects.filter(
entry_UUID__in = entry_UUIDs).values(
'entry_UUID', 'entry_category').annotate(
Avg('numeric_value'),
Min('numeric_value'),
Max('numeric_value'),
Count('entry_category'))
推荐阅读
- powershell - Expand-Archive 奇数错误
- c++ - 这些 c++ 函数中的 {} 是什么意思?
- python - 需要更改 MySQL 连接选项的建议 (Python)
- apache - Apache 重写,删除管道 (|) 字符后的任何内容
- c++ - Carve CSG c++ 的问题。结果中包含错误的顶点
- apache-spark - 如何在将 SparkSQL 查询输出用于另一个 SparkSQL 查询时将其同时插入到 HIVE
- d3.js - d3.js 我怎样才能得到只是年
- azure - Azure B2C 身份验证和管理员登录
- angular - 如何禁用垫选择列表中的按钮
如果未选择 mat-list-option? - sql - Oracle SQL 折叠数据行