Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 具有活动记录(Rails)的Distinct和Count的GROUP BY_Mysql_Ruby On Rails_Activerecord - Fatal编程技术网

Mysql 具有活动记录(Rails)的Distinct和Count的GROUP BY

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

使用: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(: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
}