Mysql 具有活动记录(Rails)的Distinct和Count的GROUP BY
使用:Rails 2.3.8 ruby 1.8.7 如何将以下查询转换为Rails(活动记录) MYSQL 返回=>Mysql 具有活动记录(Rails)的Distinct和Count的GROUP BY,mysql,ruby-on-rails,activerecord,Mysql,Ruby On Rails,Activerecord,使用:Rails 2.3.8 ruby 1.8.7 如何将以下查询转换为Rails(活动记录) MYSQL 返回=> | source_code | count | | ABC | 16 | | XYZ | 2 | Rails尝试 如您所见,结果集中缺少count。您的SQL语句不需要DISTINCT子句,因为GROUP BY子句将返回DISTINCT源代码行 在rails 2.3.x中,您可以获得如下所示的预期结果: Model.count(:g
| source_code | count |
| ABC | 16 |
| XYZ | 2 |
Rails尝试
如您所见,结果集中缺少count。您的SQL语句不需要
DISTINCT
子句,因为GROUP BY
子句将返回DISTINCT源代码
行
在rails 2.3.x中,您可以获得如下所示的预期结果:
Model.count(:group => :source_code)
# returns an ordered hash
{
"ABC" => 16,
"XYZ" => 2
}
我知道一定有办法做到这一点。非常感谢。Rails 3.2.13呢??我得到的是普通的ActiveRecord数组,但不是有序散列。顺便说一句,我想要的是实际记录而不是计数
Model.find(:all, :select => "distinct source_code, count(source_code)",
:group => 1)
=> [Model source_code: "ABC">, Model source_code: "XYZ">]
Model.count(:group => :source_code)
# returns an ordered hash
{
"ABC" => 16,
"XYZ" => 2
}