【问题标题】:Query for created articles for all months of selected year for all users查询所有用户在选定年份的所有月份创建的文章
【发布时间】:2016-04-25 09:54:15
【问题描述】:

我坚持这个, 我有一个文章列表,其中包含 update_at 和 updated_by。我需要编写查询,它将为我提供所选年份所有月份每个用户更新文章的计数。

谢谢

【问题讨论】:

    标签: sql ruby-on-rails postgresql activerecord


    【解决方案1】:

    试试这个:

    在这里,我以 2016 年为年份,并假设您有 current_user 可供您使用

    current_user.articles.where("extract(year from updated_at)= ?", 2016).count
    

    【讨论】:

    • 许多用户可以创建文章,我需要对所有文章进行计数,并且我需要每月而不是每年的数据
    • @BozidarMilivojevic - 您需要更清晰地定义“每个用户”。如果你有 3000 个用户,但只有 2000 个用户创建/更新一篇文章,你想要什么结果? updates per user = total updates / 3000 (因为您有 3000 个用户)total_updates / 2000 (因为您有 2000 个用户进行了更新)
    • 我想看看每个用户在选定年份的每个月创建了多少文章,我只将他们的 ID 传递给控制器​​。如果用户没有更新文章,则为 0。
    【解决方案2】:

    你可以试试这个方法:

    Article.group("updated_by, date_trunc('month', updated_at)").where("extract(year from updated_at)= ?", 2016).count
    

    它会像[updated_by, Month_NO] => count一样返回结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2014-12-30
      • 2015-12-15
      • 1970-01-01
      相关资源
      最近更新 更多