sql >> Databáze >  >> RDS >> PostgreSQL

django dostává měsíc od data pro agregaci

Zkoušel jsi se podívat na své schéma? Myslím, že jste si jen spletli název sloupce.

Za předpokladu, že používáte Djnago>=1.8, můžete se také vyhnout celému problému napsáním Func jako tento:

class ExtractMonth(Func):
    template = "EXTRACT(MONTH FROM %(expressions)s)"

    def __init__(self, *expressions, **extra):
        extra['output_field'] = SmallIntegerField()
        super().__init__(*expressions, **extra)
       

a používat jej takto:

Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
                .values('Month').annotate(Count('Month'))

Tímto způsobem 'Modified' je název pole na vašem modelu a Django název sloupce vyřeší za vás.

Aktualizovat

V tomto tiketu 1.9 je navrženo obecnější řešení .




  1. získat odpověď na úspěch/neúspěch z mysqli_query

  2. Pořadí provádění podmínek v klauzuli SQL 'where'

  3. Oracle SQl Dev, jak vypočítat počet pracovních dnů mezi 2 daty

  4. Hibernate nemůže automaticky vytvořit schéma na Heroku postgres