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).
对于带有Arel的rails 3,您可以执行以下操作:
Address.group(:street_name, :flat_no, :house_no, :house_alpha).having("count(*) > 0").count.size
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7730 次 |
| 最近记录: |