gregação @django para diminuir a resolução usando o agrupamento por perío
horrible title, mas deixe-me explicar: eu tenho esse modelo de django contendo um carimbo de data / hora (data) e o atributo para log - f.e. o número de usuários que consomem algum recurso - (valor).
class Viewers(models.Model):
date = models.DateTimeField()
value = models.IntegerField()
para cada 10 segundos a tabela contém o número de usuários. algo assim
| date | value |
|------|-------|
| t1 | 15 |
| t2 | 18 |
| t3 | 27 |
| t4 | 25 |
| .. | .. |
| t30 | 38 |
| t31 | 36 |
| .. | .. |
gora, quero gerar estatísticas diferentes a partir desses dados, cada um com outra resolução. f.e. Para um gráfico do último dia, não preciso da resolução de 10segundo, então quero etapas de 5 minutos (que são construídas pela média dos valores (e talvez também da data) das linhas de t1 a t29, t30 a t59,. ..), para que eu receba:
| date | value |
|------|-------|
| t15 | 21 |
| t45 | 32 |
| .. | .. |
os atributos para manter a variável são o registro de data e hora de início e término e a resolução (como 5 minutos). existe uma maneira de usar a API do django orm / queryset e, se não, como chegar a isso com sql personalizado?