Saltar al contenido

Django y agregado: ¿suma de valores distintos?

Este equipo de especialistas luego de ciertos días de investigación y de recopilar de información, obtuvimos los datos necesarios, nuestro deseo es que resulte de gran utilidad en tu proyecto.

Solución:

De esta respuesta para una pregunta relacionada:

from django.db.models import Sum
income_posts.values('category__name').order_by('category__name').annotate(total=Sum('amount'))

Solo para agregar a la respuesta de arjun27. Dado que ese paquete parece haber sido abandonado, es posible que desee simplemente copiar más allá de las 3 líneas que necesita:

from django.db.models import Sum
class DistinctSum(Sum):
    function = "SUM"
    template = "%(function)s(DISTINCT %(expressions)s)"

Que se puede usar igual que el anterior:

income_posts.annotate(total=DistinctSum('amount')

Si está en Postgres, puede usar el django-pg-utils paquete para la suma de valores distintos.

from pg_utils import DistinctSum
income_posts.annotate(total=DistinctSum('amount')

Comentarios y calificaciones de la guía

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *