0
如果你的模型結構類似這樣的聚集字段值:Django的:不同型號
class Hour(models.Model):
stat1 = models.FloatField()
stat2 = models.FloatField()
stat3 = models.FloatField()
class Day(models):
hour = models.ForeignKey(Hour) #e.g.: Hour.id=1, Hour.id=2, ..., Hour.id=24
class Weather(models.Model):
day = models.ForeignKey(Day)
注:hours
可能與某些days
和stats
丟失可能會從一定hours
失蹤。數據收集每天都缺少所有的時間,每個小時都缺少所有的統計數據。
對models
這個等級的統計數據進行求和和平均的最佳方法是什麼?例如,假設我想知道某些日期沒有H5
的數據時,我想stat2
的總數和平均值爲H5
的所有days
那0123則有這個Weather
有數據?
更新:我自己的解決方案,它假定Day.id等於一天的小時:例如如果Day.id == 5,那麼它的一天H5:
hours = [[hour for hour in w.day.objects.all() if hour.id==5] \
for w in Weather.objects.all()]
var2_sum = [sum(h.var2 for h in hours if hasattr(h,'var2'))]
var2_count = [count(h.var2 for h in hours if hasattr(h,'var2'))]
var2_avg = var2_sum/var2_count
您的Day模型的實例應該同時包含'weather_set'和'hour_set',它將爲您提供該實例的相關數據。 –
天如何被指定爲H1,H2等?我在模型中沒有看到。 –
@Garry ..因爲數據集中有漏洞,所以我沒有weather_set或hour_set – Cole