Django Queryset의 합계 열
-
19-09-2019 - |
문제
다음을 감안할 때 Contribution
모델:
class Contribution(models.Model):
start_time = models.DateTimeField()
end_time = models.DateTimeField(null=True)
Django 데이터베이스 API를 사용하여 다음 SQL 문을 재현 할 수 있습니까?
SELECT SUM(end_time - start_time) AS total_duration FROM contribution;
나는 이것을 많이 알아 냈다 :
Contribution.objects.aggregate(total_duration=models.Sum( ??? ))
그러나 나는 어떻게 표현하는지 잘 모르겠습니다 end_time - start_time
부분. 감사!
해결책
현재는 불가능합니다 티켓 f () 응집 내부의 물체의 경우, 그러나 유망한 것은 없습니다.
내가 보는 유일한 방법은 파이썬에서 합계로 해결하는 것입니다.
sum([x[1]-x[0] for x in Contribution.objects.values_list('start_time', 'end_time')])
제휴하지 않습니다 StackOverflow