Ruby on Rails .group和.count

示例

我们有一个Product模型,我们想按他们的分组category。

Product.select(:category).group(:category)

这将查询数据库,如下所示:

SELECT "product"."category" FROM "product" 通过...分组 "product"."category"

确保也选择了分组字段。分组对于计算的出现(在这种情况下)特别有用categories。

Product.select(:category).group(:category).count

如查询所示,它将使用数据库进行计数,这比首先检索所有记录并在代码中进行计数要有效得多:

SELECT COUNT("products"."category") AS count_categories, "products"."category" AS products_category FROM "products" 通过...分组 "products"."category"