我的数据库中有一个日志表,用于保存所有用户操作。在此表中有一个名为“money”的列,表示该用户当天有多少钱(每个日志条目还有一个'timestamp'列)
如何从按周或按月分组的表格中检索数据,并将其与平均物有所值汇总?
答案 0 :(得分:1)
最简单的方法是预先计算周和/或月,并将数据存储到另一个字段中。然后查询就像YourTable.objects.values('week', 'year').annotate(Avg('money))
一样简单。
你 也应该能够使用extra()参数执行此操作,但这有时很棘手。那看起来像是
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