Python django queryset获取组的平均值

Python django queryset获取组的平均值,python,django,django-queryset,django-filter,Python,Django,Django Queryset,Django Filter,这有点棘手 我有一个数据库,它跟踪每个用户下载的用法,以KB为单位,每小时(每天24个条目); 看起来像这样 用户时间戳使用 用户1 2013-0501 14:00:00 229 用户2 2013-0501 14:00:00 103 用户1 2013-0501 13:00:00 220 用户2 2013-0501 13:00:00 103 现在我需要每个用户每天的平均使用率 有没有办法创建一个查询集 我想这样做。。(但无法执行) 对于每个用户(bundle)或获取当天的条目并对其进行平均。。 但

这有点棘手

我有一个数据库,它跟踪每个用户下载的用法,以KB为单位,每小时(每天24个条目); 看起来像这样

用户时间戳使用 用户1 2013-0501 14:00:00 229

用户2 2013-0501 14:00:00 103

用户1 2013-0501 13:00:00 220

用户2 2013-0501 13:00:00 103

现在我需要每个用户每天的平均使用率

有没有办法创建一个查询集

我想这样做。。(但无法执行)

对于每个用户(bundle)或获取当天的条目并对其进行平均。。 但这就是我的全部

myValue = Members.objects.order_by('-time')
myValue = myValue.filter(user='user1')
myValue = myValue.annotate(dcount=Count('timestamp'))
如何获取“myValue.annotate(dcount=Count('timestamp\uu day')”的计数或更好的列表 并得到该捆绑的平均值

myAvg = myValue.aggregate(Avg('usage'))

谢谢你的帮助,如果这让我困惑,请告诉我

我想说的是,这是一个典型的查询实例,无法清晰地映射到您的模型。 结果类型为(用户、日期、平均使用率),固定用户类型为(日期、平均使用率)。因此,它不能很好地映射到单个用户对象,也不能映射到单个用户使用条目。这就是为什么ORM内置的聚合不会让你走得更远

因为这是一个非常简单的SQL查询,所以我选择原始SQL路径():

假设日期(时间戳)是SQL操作,将时间戳转换为日期(取决于DB),而用户\u使用率是表,则这些查询是:

要为一个用户获取此信息,请执行以下操作:

select date(timestamp) as date, avg(usage) 
    from user_usage where user_id = %s  
    group by date(timestamp)
要同时为所有用户提供此功能,请执行以下操作:

select user_id, date(timestamp) as date, avg(usage) 
    from user_usage
    group by user_id,date(timestamp)