【问题标题】:How to write the query for this requirement?如何编写此要求的查询?
【发布时间】:2016-03-31 08:59:47
【问题描述】:

我的 django 数据库中有几十万条 svn 提交记录,每条记录都保存了每次提交的相关信息(如 BugID、LinesChanged、SubmitWeek ...)

我想汇总记录的每个字段信息并根据 SubmitWeek 字段创建报告,如下所示:

我目前迭代记录和操作相关字段值,我想知道是否有更简洁的方式来定义查询和提取摘要?非常感谢

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    你的问题有点含糊。

    如果您正在寻找一种方法来形成更具体的查询以使 Django 执行更多的连接和更少的单独查询,请查看:

    • QueryManager 的values()values_list()

    如果您想让 Django 一次获取相关对象而不是在单独的查询中,请查看:

    • prefetch_related()select_related()

    如果您想更有效地更新数据,请查看:

    【讨论】:

    • 谢谢,我的主要要求是,如果我运行查询并返回查询集(可能是 1000 条记录),任何获取特定整数字段求和结果的方法(如 LinesChanged),或定义直接得到求和结果的查询?
    【解决方案2】:

    参考手册,我使用了以下语句,它似乎效果很好,无论如何感谢 Risadinha :)

    # Sum all the records's LinesChanged value
    SVN_Commit.objects.filter(my filter).aggregate(Sum('LinesChanged'))
    
    # Get the unique SubmitWeek List
    SVN_Commit.objects.filter(my filter).values_list('SubmitWeek', flat=True).order_by('SubmitWeek').distinct()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2015-08-14
      • 1970-01-01
      • 2023-01-11
      • 2021-01-15
      • 2011-10-30
      相关资源
      最近更新 更多