Ich frage mich nur, ob es möglich ist, ein Ergebnis zu erhalten, das ich mit dieser SQL-Abfrage mit nur Django ORM erhalten kann:
SELECT * FROM (SELECT DATE_FORMAT(created, "%Y") as dte, sum(1) FROM some_table GROUP BY dte) as analytics;
Das Ergebnis ist:
+------+--------+
| dte | sum(1) |
+------+--------+
| 2006 | 20 |
| 2007 | 2230 |
| 2008 | 4929 |
| 2009 | 1177 |
+------+--------+
Das vereinfachte Modell sieht wie folgt aus:
# some/models.py
class Table(models.Model):
created = models.DateTimeField(default=datetime.datetime.now)
Ich habe versucht, verschiedene Möglichkeiten mit Mischung aus .extra(select={}) und .values() und auch mit der .query.group_by Trick beschrieben aquí würde aber einen neuen Blick auf das Problem begrüßen.