查询从来都不是我的强项。我正在尝试修改我当前的查询以允许按 ASC/DESC 排序。
为此,我有一个模型 Activity,它扩展为 Share、Scan、Review、Redeem(可通过 Activity.type 访问)。
我目前的查询是
results=Activity.select("*, count(*) as count").where(created_at: date_from..date_to).group(:user_id).having("count > 0").count("type='#{val}', count(*) #{desc/asc}")
这给了我类似的东西:
{2=>1, 3=>1, 1=>305, 111=>99, 110=>98, 109=>97, 108=>96, 107=>95, 106=>94, 105=>93,...
这里的问题是,前 2 个有(type=#{val}).count
= 0。这意味着它们下面有 Activity 记录,但它们的类型不同。无论如何要修改查询,以便这些 .count=0 实际上尊重排序?
否则,作为一种解决方法,我可以手动将所有这些添加到数组中,然后最后评估它们。
编辑:更新到我当前的问题