Using .aggregate() on a value introduced using .extra(select={…}) in a Django Query?
You could use a custom aggregate function to produce your query: WEEK_FUNC = ‘STRFTIME(“%%%%W”, %s)’ # use ‘WEEK(%s)’ for mysql class WeekCountAggregate(models.sql.aggregates.Aggregate): is_ordinal = True sql_function = ‘WEEK’ # unused sql_template = “COUNT(%s)” % (WEEK_FUNC.replace(‘%%’, ‘%%%%’) % ‘%(field)s’) class WeekCount(models.aggregates.Aggregate): name=”Week” def add_to_query(self, query, alias, col, source, is_summary): query.aggregates[alias] = WeekCountAggregate(col, source=source, is_summary=is_summary, **self.extra) >>> … Read more