【问题标题】:Rails hash counting from a specific keys in hashRails 哈希从哈希中的特定键计数
【发布时间】:2021-10-19 21:17:48
【问题描述】:

您好,我正在使用下面的代码

Companion.where(companion_type: 1).joins(:tasks).where(tasks: {status: 3}).group_by_month(:created_at).size

我的数据看起来像这样

Jan, 2017 => 89
     .
     .
     .

Aug, 2021 => 300

但我需要 2019 年 1 月以上的数据 有什么好办法解决吗?

【问题讨论】:

    标签: ruby-on-rails hash key


    【解决方案1】:

    如果您只对 2019 年 1 月感兴趣,则无需拉取所有 Companion 表,然后按月分组。相反,只选择感兴趣的月份中的那些...

    Companion.
      where(companion_type: 1).
      joins(:tasks).
      where(tasks: {status: 3}).
      where("MONTH(tasks.created_at) = 1 AND DAY(tasks.created_at) = 19").
      count
    

    我假设您要过滤的是created_at 的任务,而不是同伴的created_at,对吗?

    另外,使用 count 比使用 size 更好,因为它直接插入到 sql 中,而不是实例化 2019 年 1 月以来的所有对象,然后将 .size 应用于结果。

    【讨论】:

    • 哦,我写错了问题...我需要从 2019 年 1 月开始的数据!
    • 我想知道的数据是自 2019 年以来有多少 Companion(companion_type: 1) 有一个任务
    • 我不清楚你想要什么。在您的示例结果中,这是否意味着 2021 年 8 月有 300 个同伴有一些任务,或者是否意味着 2021 年 8 月有 300 个任务属于任何同伴(类型:1)?或者换个说法,300 是同伴还是任务?
    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多