Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django。。。从数据库中汇总计算结果_Python_Django_Postgresql - Fatal编程技术网

Python Django。。。从数据库中汇总计算结果

Python Django。。。从数据库中汇总计算结果,python,django,postgresql,Python,Django,Postgresql,postgres表为在其中一个计算集群上执行的每个作业都有一个条目。表中包括作业纪元开始时间(g\u开始时间)、作业纪元结束时间、使用的内核/处理器数量(g\u处理器)和执行作业的用户id(g\u用户id)的字段 要计算特定用户的cpu年数,数学是sum((g_end_time-g_start_time)*g_处理器/60*60*2 4*365.25)。Django中是否有合适的“聚合”方法来进行此计算,或者我是否需要迭代原始查询来进行计算 我认为没有一种方法可以用默认的QuerySet方法专门

postgres表为在其中一个计算集群上执行的每个作业都有一个条目。表中包括作业纪元开始时间(
g\u开始时间
)、作业纪元结束时间、使用的内核/处理器数量(
g\u处理器
)和执行作业的用户id(
g\u用户id
)的字段


要计算特定用户的cpu年数,数学是
sum((g_end_time-g_start_time)*g_处理器/60*60*2 4*365.25)
。Django中是否有合适的“聚合”方法来进行此计算,或者我是否需要迭代原始查询来进行计算

我认为没有一种方法可以用默认的QuerySet方法专门表示这一点。但您可以使用额外选项:

大概是这样的:

Entry.objects.extra(select={'cpu_years':“sum((g_end_time-g_start_time)*g_处理器/60*60*2 4*365.25)”)

Extra看起来像一个解决方案。重要的是,对每个符合条件的行进行计算,然后求和,而不是对每个元素求和,然后对结果进行计算(即,求和(a)*求和(b)!=求和(a*b))。我会试试看是否正确。谢谢你的回复!