Don*_*n P 7 ruby-on-rails rails-activerecord
我有一个表的人与一列年龄.
我如何计算每个年龄段的人数,从最老到最年轻的人,按年龄过滤至少2人?
我将如何在原始SQL中编写它:
SELECT
COUNT(1) AS people_count,
age
FROM people
GROUP BY age
HAVING people_count > 1
ORDER BY age DESC
Run Code Online (Sandbox Code Playgroud)
在Rails中(我不知道该怎么做):
Person.group(:age).count 将按年龄计算我的计数,但我无法弄清楚如何按年龄降序,或添加有条款.
eug*_*gen 13
尝试类似的东西:
Person.select("id, age").group(:id, :age).having("count(id) > 1").order("age desc")
Run Code Online (Sandbox Code Playgroud)
小智 7
我发现其他答案对我不起作用。我不得不做这样的事情
Person.group(:age).having('count(*) > 1').order('age desc').count
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11071 次 |
| 最近记录: |