django: агрегирование записей журнала за определенный фиксированный период времени - PullRequest
1 голос
/ 19 июля 2011

В моей базе данных есть таблица журнала, в которой хранятся все действия пользователя.В этой таблице есть столбец «деньги», который указывает, сколько денег у этого пользователя было в тот день (также есть столбец «отметка времени» для каждой записи журнала)

Как я могу получить данные из этой таблицысгруппированы по неделям или месяцам, агрегированы со средним соотношением цены и качества?

1 Ответ

1 голос
/ 19 июля 2011

Самый простой способ сделать это - предварительно рассчитать неделю и / или месяц и сохранить эти данные в другом поле. Тогда запрос так же прост, как YourTable.objects.values('week', 'year').annotate(Avg('money)).

Вы должны также быть в состоянии сделать это с дополнительными () параметрами, но это иногда сложно. Это будет выглядеть как

YourTable.objects.extra(select={
     'week': 'some_method_to_calculate_week_from_timestamp(timestamp)'
}).values('week').annotate(Avg('money'))

То, как вы будете вычислять неделю по метке времени во втором случае, будет зависеть от вашей БД. Если postgres необходимая информация будет здесь: http://www.postgresql.org/docs/8.1/static/functions-datetime.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...