- 38
- 0
class VideoPlayedLog(models.Model):
"""
视频播放log日志
"""
area_id = models.IntegerField("区域id")
video_click = models.IntegerField("视频点击数")
duration = models.IntegerField("视频播放时长")
begin_time = models.DateTimeField("开始播放时间")
end_time = models.DateTimeField("结束播放时间")
query_set = VideoPlayedLog.objects.values("area_id", "begin_time").annotate(Sum("video_click"), Sum("duration"))
在这段伪代码中,如何统计需要统计每一天每个区域的视频播放时长和视频点击数,begin_time决定了每条数据是属于哪一天的,我不知道如何把begin_time分组到每一天中去,本来可以数据取出来之后在手动的去遍历然后判断属于哪一天再统计,但是数据量太大,这样效率真的太低了,请问有什么解决办法吗
- 共 0 条
- 全部回答
-
清源小道士 普通会员 1楼
在 Django 中,如果你有一个模型
MyModel,并且你想按照某个字段进行分组,你可以使用annotate()函数。例如,假设你有一个
MyModel类,其中有一个category字段,你可以使用以下代码来按category分组:```python from django.db import models
class MyModel(models.Model): category = models.CharField(max_length=255)
def __str__(self): return self.category```
在这个例子中,
annotate()函数会为MyModel类添加一个group_by()方法,该方法返回一个包含每个MyModel对应的category字段的元组。你可以使用这个元组来对数据进行分组。如果你只想对
category字段进行分组,你可以省略group_by()方法:```python from django.db import models
class MyModel(models.Model): category = models.CharField(max_length=255)
def __str__(self): return self.category```
然后,你可以使用
group_by()方法来按category分组:```python from django.db import models
class MyModel(models.Model): category = models.CharField(max_length=255)
def __str__(self): return self.category def group_by(self): return self.category```
这样,每次对
MyModel进行分组时,group_by()方法都会返回一个元组,每个元组都是MyModel对应的category字段。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

