Ho un modello semplice come questo:
class Order(models.Model):
created = model.DateTimeField(auto_now_add=True)
total = models.IntegerField() # monetary value
E voglio produrre una ripartizione mese per mese di:
- Quante vendite ci sono state in un mese (
COUNT
) - Il valore combinato (
SUM
)
Non sono sicuro di quale sia il modo migliore per attaccare questo. Ho visto alcune query extra-selezionate dall'aspetto abbastanza spaventoso, ma la mia mente semplice mi dice che potrei stare meglio solo ripetendo numeri, a partire da un anno / mese di inizio arbitrario e contando fino a raggiungere il mese corrente, buttando fuori semplici query che filtrano per quel mese. Più lavoro sul database - meno stress per gli sviluppatori!
Cosa ha più senso per te? C'è un modo carino per recuperare una rapida tabella di dati? O il mio metodo sporco è probabilmente l'idea migliore?
Sto usando Django 1.3. Non sono sicuro che abbiano aggiunto un modo migliore a GROUP_BY
recentemente.