【问题标题】:Django ORM form for the following sql query用于以下 sql 查询的 Django ORM 表单
【发布时间】:2013-02-05 10:43:49
【问题描述】:

我想知道如何将以下内容添加到 Django ORM 表单中:

SELECT name,mobile_number,COUNT(*) as count, created FROM core_user,core_useractivity  WHERE core_user.id = core_useractivity.user_id GROUP BY user_id ORDER BY count DESC;

其中姓名、手机号码是 core_user 表或 USER 模型中的列,created 是 core_useractivity 中的列,其模型是 UserActivity 。这两个表在 user_id 上连接。此外,我按 user_id 对行进行分组,以降序显示结果。

【问题讨论】:

    标签: django


    【解决方案1】:

    尝试使用用户活动计数注释用户。

    from django.db.models import Count
    User.objects.annotate(num_activities=Count('useractivity')).order_by('num_activities')
    

    这将返回一个用户查询集,每个用户都有一个属性num_activities。请参阅docs on annotation 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2014-10-09
      • 2015-12-23
      • 2018-05-15
      • 2021-12-16
      • 1970-01-01
      • 2021-07-06
      • 2012-08-03
      • 2016-04-20
      • 2013-02-23
      相关资源
      最近更新 更多