gpt4 book ai didi

mysql - ActiveRecord 查询日期之间并具有第一个属性值

转载 作者:行者123 更新时间:2023-11-29 12:58:21 24 4
gpt4 key购买 nike

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com