你提供的代码实现是正确的。它会按照 'thread' 分组,然后对于每一组,计算该组中所有行的 'count'/'size'*'number' 的平均值。最终结果会保存在一个 QuerySet 中,每一行都包含 'thread' 和 'avg_count_size_number' 两个字段。

result = SimpleHashMapModel.objects.values('thread').annotate(
    avg_count_size_number=(Avg('count') / Avg('size')) * Avg('number')
)

该代码使用 Django ORM 的 values()annotate() 方法来实现分组和计算平均值。具体解释如下:

  • values('thread'):将结果集按 'thread' 字段进行分组。
  • annotate(avg_count_size_number=(Avg('count') / Avg('size')) * Avg('number')):为每个组添加一个名为 'avg_count_size_number' 的字段,该字段的值为该组中所有行的 'count'/'size'*'number' 的平均值。

最终,result 变量将包含一个 QuerySet,其中每一行代表一个 'thread' 组,并包含 'thread' 和 'avg_count_size_number' 两个字段。

Django Model 中按 thread 分组计算 count/size*number 均值

原文地址: https://www.cveoy.top/t/topic/nuEr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录