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