减去两个带注释的列

发布于 2021-01-29 14:59:00

我需要能够对两个带注释的列进行汇总

所以我想做这样的事情:

c = c.annotate(metric=Sum('results__metric'))
c = c.annotate(metric_prior=Sum('results__metric_prior'))
c = c.annotate(variance=F('metric')-F('metric_prior')) #doesn't work, for demonstrative purposes only

接着:

c = c.order_by('variance')

有谁知道如何完成上述工作?

关注者
0
被浏览
66
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    其实,

    c = c.annotate(variance=F('metric')-F('metric_prior'))
    

    从Django
    1.8开始
    就可以正常工作了

    此外,您还可以按表达式排序,这意味着您可以使用:

    c = c.order_by(F('metric') - F('metric_prior'))
    

    甚至只是:

    c = c.order_by(Sum('results__metric') - Sum('results__metric_prior'))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看