2011-07-19 38 views
1

我在我的數據庫中有一個日誌表,其中包含所有用戶操作。在這張表中有一個名爲'money'的列,它表明這個用戶在那一天有多少錢(每個日誌條目也有一個'timestamp'列)django:按一定的固定時間段彙總日誌條目

如何從該表中檢索數據一週或一個月,與平均價值彙總?

回答

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