按多列分组并计算结果

时间:2015-01-14 07:54:51

标签: mysql ruby-on-rails ruby

如何按多列分组,并使用ActiveRecord(Rails 3)和MySql将整体结果作为计数返回?我用

试了一下
MyModel.count(group: [:col1, :col2])

但是这会返回一个大哈希(表中有大约75.000条记录),我只需要查询返回的总行数。

我能做到

MyModel.count(group: [:col1, :col2]).count # => 5266

但这会将所有内容加载到Rails中,这会变慢。

2 个答案:

答案 0 :(得分:0)

你试过吗

MyModel.group(:col1).group(:col2).count

我注意到这对于关联字段不起作用,但对于其id列工作正常。

答案 1 :(得分:0)

您可以像这样使用每个字段的不同计数。

MyModel.pluck('COUNT(DISTINCT col1) as col1, COUNT(DISTINCT col2) as col2')

你收到这样的结果

[[13273, 0]]