【问题标题】:Convert SQL Query to ActiveRecord Query Ruby on Rails将 SQL 查询转换为 ActiveRecord 查询 Ruby on Rails
【发布时间】:2019-09-20 11:13:15
【问题描述】:

我有这个 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_at + interval '8h' AS date) BETWEEN '2019-09-05' AND '2019-09-10'
GROUP BY request_date
ORDER BY request_date DESC;

我想将其转换为我可以在 Rails 控制台中使用的 ActiveRecord 查询。

【问题讨论】:

    标签: sql ruby-on-rails postgresql activerecord


    【解决方案1】:

    @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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多