Ruby on Rails 3.2
步骤
1) 获取每个用户
2) 如果存在具有相同 reseller_id 值的用户,则仅采用第一个用户。
3) 在日期之间获取用户
4) 计数
示例:
h=User.all.select(:reseller_id).first
h.where(created_at: '2014-01-01'..'2014-03-31')
h.count
注意
我需要检查所有用户是否是第一个具有 reseller_id 的用户。然后检查日期之间的情况。
最佳答案
你错过了一些东西。你需要看看那个where生成的sql。
> User.where(created_at: '2014-01-01'..'2014-03-31').to_sql
=> "SELECT `users`.* FROM `users` WHERE (`users`.`created_at` BETWEEN '2014-01-01' AND '2014-03-31')"
所以,你想要的是
User.where(created_at: '2014-01-01'..'2014-03-31', reseller_id: <somevalue>).first
也许您也想要一份订单?可以添加在 .first
我正在根据下面的评论更新此答案。
首先,您获取所需的 reseller_id:
reseller_id = User.where(created_at: '2014-01-01'..'2014-03-31').where("reseller_id is not null").select(:reseller_id).first
然后,运行第二个查询:
users = User.where(created_at: '2014-01-01'..'2014-04-01', reseller_id: reseller_id)
你应该是金色的。
关于mysql - ActiveRecord 查询日期之间并具有第一个属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23702771/