这个查询可以在活动记录中吗?

时间:2012-12-04 03:07:55

标签: sql ruby-on-rails ruby activerecord

我有一个User类,它有一个名为'device'的列,类型为VARCHAR(255)。此列基本上包含设备类型,例如字符串'iPhone 4S','iPod Touch 4G'等...

是否可以(不加载所有用户并手动执行)来计算每个设备的总出现次数?

所以它会回来:

iPhone:  50
iPad 2: 54
etc....

1 个答案:

答案 0 :(得分:1)

你只需这样做:

counts = User.count(:group => :device)

这将(或多或少)转换为此SQL:

select count(*), device from users group by device

你会得到一个Hash映射devicecounts中的计数:

{
    'iPhone' => 50,
    'iPad 2' => 54,
    ...
}