rails 3 + activerecord:是否有一个按字段2分组的查询(field1)?

时间:2011-08-19 16:22:40

标签: ruby-on-rails activerecord

我正在尝试找到在表格中汇总数据的最佳方法

我有一个带有字段的表格信息

id
region_number integer (NOT associated with another table)
member_name string
member_active T/F

会员属于某个地区,有姓名,有效或无效。

我想知道是否有一个查询会创建一个包含3列的表,以及与唯一的region_numbers一样多的行:

For each unique region_number:
  region_number
  COUNT of members in that region
  COUNT of members in that region with active=TRUE

假设我有50个区域,我看到如何使用2x50查询,但这肯定不是正确的方法!

1 个答案:

答案 0 :(得分:1)

如果您准备进行一些后处理,您可以随时分组:

SELECT region_number, COUNT(*) AS instances, member_active
  GROUP BY region_number, member_active
  WHERE region_number IN ?

这允许您同时对所有区域编号进行一次查询。 T值会有一行,F会有一行,但只有在存在时才会显示。

如果您看到一个案例,您正在进行大量仅在标识符上有所不同的查询,那么您通常可以像这样一次执行。