mysql - 查找用户在网站上花费的总时间。

标签 mysql django orm modal-dialog

如何在 Django ORM 中获取两个字段的差值之和?

我有一个映射用户事件的模式。我添加用户登录时的时间,并添加用户注销时的时间。

我需要这两个字段的差异,然后将所有实例放在一起以获得用户在网站上花费的总时间。

User.objects.filter(**user_kwargs).annotate(
            visit_count=Count('visit_history'),
            time_on_site=Avg('visit_history__time_on_site'),
        ).filter(visit_count__gt=0).order_by('-time_on_site')

如何查找用户花费的总时间?

最佳答案

我认为你不能用 django orm 做到这一点。

无论如何,至少要使用原始查询。

让我重复一遍,以便您可以验证我是否理解正确。

您想要选择 model.field_a 和 model.field_b 之间的差值之和。

Django orm 只允许您选择模型字段,而不是它们的差值或总和。如果您想在此处使用 django orm,则创建附加模型并使用原始查询和聚合函数。原始查询将是创建幽灵字段的查询,通过具有类似

SELECT ..., row.one_value - row.second_value AS row.somecolumn, ... FROM foo ...

但是既然你已经需要使用纯sql,那么我建议你完全跳过orm并使用事务和连接以及纯sql来获得你需要的东西。

关于mysql - 查找用户在网站上花费的总时间。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22196454/

相关文章:

php - MySql select by score desc - 当有多个总分时....奇怪

php - 如何更改表以删除存在的列?

django - 在 Django 中更新具有外键的表中的数据

python - django non-rel/在 App Engine 上管理每个字段的索引

javascript - 将 PHP 变量与 Javascript 结合使用

php - 为什么mysql查询没有返回正确的金额

python - Django - Slugs - Key (slug)=() 重复

c# - 在 EF Code First CTP4 中构建 ObjectContext

sql - 如何在 Django ORM 中从多个表中进行 SELECT?

java - 使用 HQL 嵌套选择