代码之家  ›  专栏  ›  技术社区  ›  harto

Django QuerySet中的Sum计算列

  •  2
  • harto  · 技术社区  · 16 年前

    鉴于以下情况 Contribution

    class Contribution(models.Model):
        start_time = models.DateTimeField()
        end_time = models.DateTimeField(null=True)
    

    SELECT SUM(end_time - start_time) AS total_duration FROM contribution;
    

    我想了很多:

    Contribution.objects.aggregate(total_duration=models.Sum( ??? ))
    

    但我不知道如何代表 end_time - start_time

    1 回复  |  直到 16 年前
        1
  •  1
  •   Dmitry Shevchenko    16 年前

    ticket 对于聚合中的F()对象,但没有什么好消息。

    我看到的唯一方法是在python中通过sum解决问题:

    sum([x[1]-x[0] for x in Contribution.objects.values_list('start_time', 'end_time')])