Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Ruby on rails Rails中的分组、计数、拥有和订购_Ruby On Rails_Rails Activerecord - Fatal编程技术网

Ruby on rails Rails中的分组、计数、拥有和订购

Ruby on rails Rails中的分组、计数、拥有和订购,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,我有一个表:people,其中一列名为:age 我怎样才能得到每个年龄段的人数,从最年长到最年轻排序,并按至少有2人的年龄进行筛选 我将如何用原始SQL编写它: SELECT COUNT(1) AS people_count, age FROM people GROUP BY age HAVING people_count > 1 ORDER BY age DESC 在Rails中(我不知道怎么做): SELECT COUNT(1) AS people_count, ag

我有一个表:
people
,其中一列名为:
age

我怎样才能得到每个年龄段的人数,从最年长到最年轻排序,并按至少有2人的年龄进行筛选

我将如何用原始SQL编写它:

SELECT
  COUNT(1) AS people_count,
  age
FROM people
GROUP BY age
HAVING people_count > 1
ORDER BY age DESC
在Rails中(我不知道怎么做):

SELECT
  COUNT(1) AS people_count,
  age
FROM people
GROUP BY age
HAVING people_count > 1
ORDER BY age DESC
Person.group(:age).count
将按
age
获取计数,但我不知道如何按年龄递减排序,或添加
having
子句。

尝试以下操作:

Person.select("id, age").group(:id, :age).having("count(id) > 1").order("age desc")

我发现其他答案不适合我。我不得不这样做

Person.group(:age).having('count(*) > 1').order('age desc').count