una tablas sumar seleccionar promedio para operaciones multiplicar matriz los leer funciones datos dataframes con columnas columna python django django-orm

python - tablas - Restar dos columnas anotadas



sumar columnas en r (2)

Necesito poder ordenar en el agregado de dos columnas anotadas

Así que me gustaría hacer algo como esto:

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

y entonces:

c = c.order_by(''variance'')

¿Alguien sabe cómo lograr algo como lo anterior?


Actualmente,

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

Funciona como te gustaría que comenzara con Django 1.8 .

Además, también puedes ordenar por una expresión, lo que significa que puedes usar:

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

o incluso simplemente:

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


Ticket está allí por más de 4 años (para 2014), pero se puede lograr con una pequeña consulta .extra() , como esta:

items = MyModel.objects.extra( select = {''variance'': ''SUM(relatedModel__someField) - SUM(relatedModel__someField)''}, )

Sí, puede ser un poco impredecible con diferentes DBMS. Pero si limita la sintaxis de SQL adicional a muy común, debería funcionar más o menos en todas partes.