【发布时间】:2019-12-18 04:33:28
【问题描述】:
m1 = myModel.objects.filter(...)
m2 = myModel.objects.filter(...)
n1 = m1.values("date").annotate(car_crashes=Sum('car_crashes') * 1).values("date", "car_crashes")
n2 = m2.values("date").annotate(car_crashes=Sum('car_crashes') * 2).values("date", "car_crashes")
通过这段代码,我得到了 n1 和 n2 两个查询集:
<QuerySet [{'date': datetime.date(2008, 4, 1), 'car_crashes': Decimal(1.000)}, ... ]>
<QuerySet [{'date': datetime.date(2011, 4, 1), 'car_crashes': Decimal(2.000)}, ... ]>
请注意,它们的大小可能不同,并且某些日期可能在一个查询集中但不在另一个查询集中。
如何在date 字段上对这两个查询集进行分组并求和car_crashes?
我正在尝试这个:
(n1 | n2).annotate(car_crashes=Sum('car_crashes')).values("date", "car_crashes")
还有这个
n1.union(n2).annotate(cc=Sum('car_crashes'))
但是
无法计算 Sum('car_crashes'):'car_crashes' 是一个聚合
【问题讨论】:
标签: python django django-orm