Django 聚合最大值覆盖查询中的值
Django aggregation max overrides values in query
我正在尝试使用 django 数据库抽象显示一些数据。
我需要显示今年的汽车总数及其总数。
我的尝试:
Cars.objects.filter(car__updated__year=datetime.now().year).values("car_id")).annotate(total=Sum("quantity")).values_list("title", "quantity").aggregate(Max("quantity"))
我的预期结果是:
{
"cars": {
"title": "toyota",
"quantity__max": 8,
}
}
但是 .aggregate(Max("quantity"))
覆盖了 "title",我收到了这个:
{
"cars": {
"quantity__max": 8,
}
}
没有.aggregate (Max (" quantity "))
数值出现(当然总计除外)。
aggregate information in a queryset有两种方法。 aggregate()
方法只生成摘要,而不是查询集中的其余信息。根据您的预期结果,您可能应该改用 annotate()
,这会将您的聚合值添加到查询集值中。
我正在尝试使用 django 数据库抽象显示一些数据。
我需要显示今年的汽车总数及其总数。
我的尝试:
Cars.objects.filter(car__updated__year=datetime.now().year).values("car_id")).annotate(total=Sum("quantity")).values_list("title", "quantity").aggregate(Max("quantity"))
我的预期结果是:
{
"cars": {
"title": "toyota",
"quantity__max": 8,
}
}
但是 .aggregate(Max("quantity"))
覆盖了 "title",我收到了这个:
{
"cars": {
"quantity__max": 8,
}
}
没有.aggregate (Max (" quantity "))
数值出现(当然总计除外)。
aggregate information in a queryset有两种方法。 aggregate()
方法只生成摘要,而不是查询集中的其余信息。根据您的预期结果,您可能应该改用 annotate()
,这会将您的聚合值添加到查询集值中。