将SQL查询转换为ActiveRecord查询Ruby on Rails
我有一个sql查询将SQL查询转换为ActiveRecord查询Ruby on Rails,sql,ruby-on-rails,postgresql,activerecord,Sql,Ruby On Rails,Postgresql,Activerecord,我有一个sql查询 SELECT count(cast(created_at + interval '8h' AS date)), cast(created_at + interval '8h' AS date) AS request_date, count(*) AS request_count FROM api_logs WHERE api_key = '7bfe68e0-8b54-0137-f0f1-3311231232' AND cast(created_
SELECT count(cast(created_at + interval '8h' AS date)),
cast(created_at + interval '8h' AS date) AS request_date,
count(*) AS request_count
FROM api_logs
WHERE api_key = '7bfe68e0-8b54-0137-f0f1-3311231232'
AND cast(created_at + interval '8h' AS date) BETWEEN '2019-09-05' AND '2019-09-10'
GROUP BY request_date
ORDER BY request_date DESC;
我想将其转换为ActiveRecord查询,以便在Rails控制台中使用。@Sebastian Palma的回答是正确的,但我遇到了一些小错误,我只是调整了一下以获得我想要的解决方案
ApiLog
.where(api_key: '7bfe68e0-8b54-0137-f0f1-3311231232')
.where("CAST(created_at + interval '8h' AS date) BETWEEN '2019-09-05' AND '2019-09-10'")
.select(
"count(cast(created_at + interval '8h' AS date)),
cast(created_at + interval '8h' AS date) AS request_date,
count(*) AS request_count"
)
.group(:request_date)
.order("request_date desc")