Просто интересно, возможно ли получить результат, который я могу получить, используя этот SQL-запрос только с Django ORM:
SELECT * FROM (SELECT DATE_FORMAT(created, "%Y") as dte, sum(1) FROM some_table GROUP BY dte) as analytics;
Результат:
+------+--------+
| dte | sum(1) |
+------+--------+
| 2006 | 20 |
| 2007 | 2230 |
| 2008 | 4929 |
| 2009 | 1177 |
+------+--------+
Упрощенная модель выглядит так:
# some/models.py
class Table(models.Model):
created = models.DateTimeField(default=datetime.datetime.now)
Я пробовал различные способы, используя сочетание .extra (select = {}) и .values (), а также используя трюк .query.group_by, описанный здесь , но был бы рад по-новому взглянуть на проблема.