Rails,Count和Group

rob*_*ana 3 ruby postgresql ruby-on-rails

我有一张桌子:

 +--------+-----------+-------+-----------+
 |house_no|house_alpha|flat_no|street_name|
 +--------+-----------+-------+-----------+
 |       1|           |       |James St   |
 |       1|           |       |James St   |
 |       1|           |       |James St   |
 |       2|          A|       |James St   |
 |       2|          B|       |James St   |
 |       3|          A|       |James St   |
 |       4|           |    416|James St   |
 |       4|           |    416|James St   |
 +--------+-----------+-------+-----------+
Run Code Online (Sandbox Code Playgroud)

我正在尝试计算此表中不同地址的数量.这将返回不同的地址:

Address.all(:select => 'street_name, flat_no, house_no, house_alpha',
            :group => 'street_name, flat_no, house_no, house_alpha').length
Run Code Online (Sandbox Code Playgroud)

但我想在SQL端做到这一点.并试图结合计数和小组不喜欢我.我显然做错了什么.

(数据库是postgres,rails是2.x).

rwc*_*c9u 6

对于带有Arel的rails 3,您可以执行以下操作:

Address.group(:street_name, :flat_no, :house_no, :house_alpha).having("count(*) > 0").count.size
Run Code Online (Sandbox Code Playgroud)