【问题标题】:Rails Active Record Count Across Calculated FieldRails 跨计算字段的活动记录计数
【发布时间】:2013-02-15 22:33:34
【问题描述】:

使用 AREL / Rails calculations 我正在尝试执行以下操作:

SELECT to_char(timestamp, 'YYYY-MM-DD') AS segment, COUNT(*) AS counter 
FROM pages
GROUP BY segment
ORDER BY segment

我可以运行类似的东西:

Page.order(FIELD).count(group: FIELD) 
{ a: 1, b: 4, c: 1 }

但是,我无法跨计算字段进行此操作。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails rails-activerecord arel


    【解决方案1】:

    想出了这个:

    Page.count(:all, from: "(SELECT to_char(#{SEGMENT}, 'YYYY-MM-DD')  AS segment FROM pages) AS pages", group: "segment", order: "segment")
    > SELECT COUNT(*) AS count_all, segment AS segment FROM (SELECT to_char(created_at, 'YYYY-MM-DD') AS segment FROM pages) AS pages GROUP BY segment ORDER BY segment
    

    【讨论】:

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